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

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

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

  • 思源笔记

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

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

    27480 引用 • 115062 回帖
  • Q&A

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

    10670 引用 • 48511 回帖 • 65 关注

相关帖子

被采纳的回答
  • 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 更新了该回帖

推荐标签 标签

  • C++

    C++ 是在 C 语言的基础上开发的一种通用编程语言,应用广泛。C++ 支持多种编程范式,面向对象编程、泛型编程和过程化编程。

    108 引用 • 153 回帖
  • 互联网

    互联网(Internet),又称网际网络,或音译因特网、英特网。互联网始于 1969 年美国的阿帕网,是网络与网络之间所串连成的庞大网络,这些网络以一组通用的协议相连,形成逻辑上的单一巨大国际网络。

    98 引用 • 367 回帖
  • Hibernate

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

    39 引用 • 103 回帖 • 733 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3205 引用 • 8217 回帖
  • Bootstrap

    Bootstrap 是 Twitter 推出的一个用于前端开发的开源工具包。它由 Twitter 的设计师 Mark Otto 和 Jacob Thornton 合作开发,是一个 CSS / HTML 框架。

    18 引用 • 33 回帖 • 642 关注
  • Latke

    Latke 是一款以 JSON 为主的 Java Web 框架。

    71 引用 • 535 回帖 • 840 关注
  • 爬虫

    网络爬虫(Spider、Crawler),是一种按照一定的规则,自动地抓取万维网信息的程序。

    106 引用 • 275 回帖 • 2 关注
  • React

    React 是 Facebook 开源的一个用于构建 UI 的 JavaScript 库。

    192 引用 • 291 回帖 • 359 关注
  • Quicker

    Quicker 您的指尖工具箱!操作更少,收获更多!

    39 引用 • 167 回帖 • 1 关注
  • SpaceVim

    SpaceVim 是一个社区驱动的模块化 vim/neovim 配置集合,以模块的方式组织管理插件以
    及相关配置,为不同的语言开发量身定制了相关的开发模块,该模块提供代码自动补全,
    语法检查、格式化、调试、REPL 等特性。用户仅需载入相关语言的模块即可得到一个开箱
    即用的 Vim-IDE。

    3 引用 • 31 回帖 • 116 关注
  • Anytype
    3 引用 • 31 回帖 • 49 关注
  • TextBundle

    TextBundle 文件格式旨在应用程序之间交换 Markdown 或 Fountain 之类的纯文本文件时,提供更无缝的用户体验。

    1 引用 • 2 回帖 • 88 关注
  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    500 引用 • 1396 回帖 • 253 关注
  • Telegram

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

    5 引用 • 35 回帖
  • 又拍云

    又拍云是国内领先的 CDN 服务提供商,国家工信部认证通过的“可信云”,乌云众测平台认证的“安全云”,为移动时代的创业者提供新一代的 CDN 加速服务。

    20 引用 • 37 回帖 • 564 关注
  • 招聘

    哪里都缺人,哪里都不缺人。

    188 引用 • 1057 回帖 • 1 关注
  • 宕机

    宕机,多指一些网站、游戏、网络应用等服务器一种区别于正常运行的状态,也叫“Down 机”、“当机”或“死机”。宕机状态不仅仅是指服务器“挂掉了”、“死机了”状态,也包括服务器假死、停用、关闭等一些原因而导致出现的不能够正常运行的状态。

    13 引用 • 82 回帖 • 80 关注
  • Scala

    Scala 是一门多范式的编程语言,集成面向对象编程和函数式编程的各种特性。

    13 引用 • 11 回帖 • 164 关注
  • 锤子科技

    锤子科技(Smartisan)成立于 2012 年 5 月,是一家制造移动互联网终端设备的公司,公司的使命是用完美主义的工匠精神,打造用户体验一流的数码消费类产品(智能手机为主),改善人们的生活质量。

    4 引用 • 31 回帖 • 2 关注
  • 设计模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

    201 引用 • 120 回帖
  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的操作系统上。容器完全使用沙箱机制,几乎没有性能开销,可以很容易地在机器和数据中心中运行。

    498 引用 • 934 回帖
  • SOHO

    为成为自由职业者在家办公而努力吧!

    7 引用 • 55 回帖 • 4 关注
  • Hadoop

    Hadoop 是由 Apache 基金会所开发的一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    93 引用 • 122 回帖 • 630 关注
  • Dubbo

    Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,是 [阿里巴巴] SOA 服务化治理方案的核心框架,每天为 2,000+ 个服务提供 3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。

    60 引用 • 82 回帖 • 623 关注
  • 程序员

    程序员是从事程序开发、程序维护的专业人员。

    594 引用 • 3541 回帖
  • Vditor

    Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。

    382 引用 • 1880 回帖 • 1 关注
  • Follow
    4 引用 • 12 回帖 • 13 关注