查询当前笔记本下的所有文档,并列出该文档已被加入的数据库,如果没有加入,则为空

本贴最后更新于 200 天前,其中的信息可能已经沧海桑田

这个需求用 Query 能实现吗,如何实现。

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    26506 引用 • 110252 回帖 • 1 关注
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    10210 引用 • 46385 回帖 • 62 关注

相关帖子

被采纳的回答
  • wilsons 2

    方法一:使用简单查询 js 实现 (推荐)

    1. 先把 js 代码添加到思源代码片段中,到这里下载 [js] 简单查询,让数据从此不再难查,支持显示多字段多视图
    2. 在编辑器中输入 {{}} 然后再弹出的输入框中输入以下 SQL 代码
    3. //!js return query(` SELECT '-' as 序号__no_w80_0, content as 标题__ref_1, CASE WHEN ial LIKE '%{: custom-avs="%' THEN '<font color=green>已加入</font>' ELSE '' END AS 是否已加入数据库__2, id as id__hide FROM blocks WHERE type = 'd' AND box = '${protyle.notebookId}' ORDER BY created desc; `, item);
    4. 说明,此代码会自动获取当前文档所在的当前笔记,且支持更灵活的样式
    5. 效果 image.png

    方法二:Query 挂件实现

    1. 先安装 Query 挂件
    2. 在编辑器中输入 /挂件 选 Query 挂件,然后在挂件中输入以下 SQL 代码
    3. SELECT '[' || content || '](siyuan://blocks/' || id || ')' AS __1____pre__文档标题, CASE WHEN ial LIKE '%{: custom-avs="%' THEN '已加入' ELSE '' END AS __2____pre__是否已加入数据库 FROM blocks WHERE type = 'd' AND box = '20240723175050-336994k' ORDER BY created desc;
    4. 说明,此挂件不能自从获取当前文档所在的笔记,需要手动复制笔记 id 到 box 字段里
    5. 效果 image.png

    PS: 截图字段少了“已”和“库”两个字,正确应该是 是否已加入数据库,代码中已修改,截图就不改了,能理解就行。

    另外,注意,思源默认最大只支持查询 64 条记录,需要在 设置-> 搜索-> 搜索结果显示数 里设置下数量或者 SQL 中加 limit,但如果筛选条数过多,可能出现卡顿现象。

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • wilsons 2

    方法一:使用简单查询 js 实现 (推荐)

    1. 先把 js 代码添加到思源代码片段中,到这里下载 [js] 简单查询,让数据从此不再难查,支持显示多字段多视图
    2. 在编辑器中输入 {{}} 然后再弹出的输入框中输入以下 SQL 代码
    3. //!js return query(` SELECT '-' as 序号__no_w80_0, content as 标题__ref_1, CASE WHEN ial LIKE '%{: custom-avs="%' THEN '<font color=green>已加入</font>' ELSE '' END AS 是否已加入数据库__2, id as id__hide FROM blocks WHERE type = 'd' AND box = '${protyle.notebookId}' ORDER BY created desc; `, item);
    4. 说明,此代码会自动获取当前文档所在的当前笔记,且支持更灵活的样式
    5. 效果 image.png

    方法二:Query 挂件实现

    1. 先安装 Query 挂件
    2. 在编辑器中输入 /挂件 选 Query 挂件,然后在挂件中输入以下 SQL 代码
    3. SELECT '[' || content || '](siyuan://blocks/' || id || ')' AS __1____pre__文档标题, CASE WHEN ial LIKE '%{: custom-avs="%' THEN '已加入' ELSE '' END AS __2____pre__是否已加入数据库 FROM blocks WHERE type = 'd' AND box = '20240723175050-336994k' ORDER BY created desc;
    4. 说明,此挂件不能自从获取当前文档所在的笔记,需要手动复制笔记 id 到 box 字段里
    5. 效果 image.png

    PS: 截图字段少了“已”和“库”两个字,正确应该是 是否已加入数据库,代码中已修改,截图就不改了,能理解就行。

    另外,注意,思源默认最大只支持查询 64 条记录,需要在 设置-> 搜索-> 搜索结果显示数 里设置下数量或者 SQL 中加 limit,但如果筛选条数过多,可能出现卡顿现象。

    1 回复
  • guodalu

    强啊佬,问下还能不能详细列出加入了哪些数据库

    1 回复
  • wilsons 1 1 赞同

    这个 query 挂件不好实现,但简单查询可以,比如

    //!js return query(` SELECT '-' as 序号__no_w80_0, content as 标题__ref_1, CASE WHEN ial LIKE '%{: custom-avs="%' THEN '<font color=green>已加入</font>' ELSE '' END AS 是否已加入数据库__2, id as id__hide, ial as ial__hide FROM blocks WHERE type = 'd' AND box = '${protyle.notebookId}' ORDER BY created desc `, item, '', async ({ row, rawRow, toRef }) => { //获取数据列表 const result = await fetchSyncPost("/api/av/getAttributeViewKeys", {id: rawRow.id}); let avs = ''; if (result && result.code === 0 && result.data.length > 0) { avs = result.data.map(av => toRef(av.avName, av.blockIDs[0]||'')).join(''); } row.已加入的数据库列表 = avs; } );

    效果

    image.png

    1 操作
    wilsons 在 2025-01-06 12:26:59 更新了该回帖

推荐标签 标签

  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1062 引用 • 3455 回帖 • 152 关注
  • BAE

    百度应用引擎(Baidu App Engine)提供了 PHP、Java、Python 的执行环境,以及云存储、消息服务、云数据库等全面的云服务。它可以让开发者实现自动地部署和管理应用,并且提供动态扩容和负载均衡的运行环境,让开发者不用考虑高成本的运维工作,只需专注于业务逻辑,大大降低了开发者学习和迁移的成本。

    19 引用 • 75 回帖 • 683 关注
  • 大数据

    大数据(big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

    89 引用 • 113 回帖
  • Google

    Google(Google Inc.,NASDAQ:GOOG)是一家美国上市公司(公有股份公司),于 1998 年 9 月 7 日以私有股份公司的形式创立,设计并管理一个互联网搜索引擎。Google 公司的总部称作“Googleplex”,它位于加利福尼亚山景城。Google 目前被公认为是全球规模最大的搜索引擎,它提供了简单易用的免费服务。不作恶(Don't be evil)是谷歌公司的一项非正式的公司口号。

    49 引用 • 192 回帖
  • Hibernate

    Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。

    39 引用 • 103 回帖 • 726 关注
  • NGINX

    NGINX 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 NGINX 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。

    315 引用 • 547 回帖 • 2 关注
  • Rust

    Rust 是一门赋予每个人构建可靠且高效软件能力的语言。Rust 由 Mozilla 开发,最早发布于 2014 年 9 月。

    59 引用 • 22 回帖 • 9 关注
  • 资讯

    资讯是用户因为及时地获得它并利用它而能够在相对短的时间内给自己带来价值的信息,资讯有时效性和地域性。

    56 引用 • 85 回帖
  • Angular

    AngularAngularJS 的新版本。

    26 引用 • 66 回帖 • 561 关注
  • Vue.js

    Vue.js(读音 /vju ː/,类似于 view)是一个构建数据驱动的 Web 界面库。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。

    268 引用 • 666 回帖 • 1 关注
  • Ngui

    Ngui 是一个 GUI 的排版显示引擎和跨平台的 GUI 应用程序开发框架,基于
    Node.js / OpenGL。目标是在此基础上开发 GUI 应用程序可拥有开发 WEB 应用般简单与速度同时兼顾 Native 应用程序的性能与体验。

    7 引用 • 9 回帖 • 407 关注
  • 30Seconds

    📙 前端知识精选集,包含 HTML、CSS、JavaScript、React、Node、安全等方面,每天仅需 30 秒。

    • 精选常见面试题,帮助您准备下一次面试
    • 精选常见交互,帮助您拥有简洁酷炫的站点
    • 精选有用的 React 片段,帮助你获取最佳实践
    • 精选常见代码集,帮助您提高打码效率
    • 整理前端界的最新资讯,邀您一同探索新世界
    488 引用 • 384 回帖 • 4 关注
  • Laravel

    Laravel 是一套简洁、优雅的 PHP Web 开发框架。它采用 MVC 设计,是一款崇尚开发效率的全栈框架。

    19 引用 • 23 回帖 • 742 关注
  • Thymeleaf

    Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。类似 Velocity、 FreeMarker 等,它也可以轻易的与 Spring 等 Web 框架进行集成作为 Web 应用的模板引擎。与其它模板引擎相比,Thymeleaf 最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个 Web 应用。

    11 引用 • 19 回帖 • 398 关注
  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    957 引用 • 944 回帖
  • 星云链

    星云链是一个开源公链,业内简单的将其称为区块链上的谷歌。其实它不仅仅是区块链搜索引擎,一个公链的所有功能,它基本都有,比如你可以用它来开发部署你的去中心化的 APP,你可以在上面编写智能合约,发送交易等等。3 分钟快速接入星云链 (NAS) 测试网

    3 引用 • 16 回帖
  • 小说

    小说是以刻画人物形象为中心,通过完整的故事情节和环境描写来反映社会生活的文学体裁。

    32 引用 • 108 回帖
  • ngrok

    ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。

    7 引用 • 63 回帖 • 656 关注
  • Access
    1 引用 • 3 回帖 • 3 关注
  • uTools

    uTools 是一个极简、插件化、跨平台的现代桌面软件。通过自由选配丰富的插件,打造你得心应手的工具集合。

    7 引用 • 28 回帖
  • Tomcat

    Tomcat 最早是由 Sun Microsystems 开发的一个 Servlet 容器,在 1999 年被捐献给 ASF(Apache Software Foundation),隶属于 Jakarta 项目,现在已经独立为一个顶级项目。Tomcat 主要实现了 JavaEE 中的 Servlet、JSP 规范,同时也提供 HTTP 服务,是市场上非常流行的 Java Web 容器。

    162 引用 • 529 回帖 • 10 关注
  • 游戏

    沉迷游戏伤身,强撸灰飞烟灭。

    187 引用 • 832 回帖
  • Telegram

    Telegram 是一个非盈利性、基于云端的即时消息服务。它提供了支持各大操作系统平台的开源的客户端,也提供了很多强大的 APIs 给开发者创建自己的客户端和机器人。

    5 引用 • 35 回帖 • 1 关注
  • GitHub

    GitHub 于 2008 年上线,目前,除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。正因为这些功能所提供的便利,又经过长期的积累,GitHub 的用户活跃度很高,在开源世界里享有深远的声望,并形成了社交化编程文化(Social Coding)。

    209 引用 • 2040 回帖
  • FlowUs

    FlowUs.息流 个人及团队的新一代生产力工具。

    让复杂的信息管理更轻松、自由、充满创意。

    1 引用
  • Office

    Office 现已更名为 Microsoft 365. Microsoft 365 将高级 Office 应用(如 Word、Excel 和 PowerPoint)与 1 TB 的 OneDrive 云存储空间、高级安全性等结合在一起,可帮助你在任何设备上完成操作。

    5 引用 • 34 回帖 • 1 关注
  • Sym

    Sym 是一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)系统平台。

    下一代的社区系统,为未来而构建

    524 引用 • 4601 回帖 • 709 关注