思源如何筛选出未加入数据库的文档?或者有没有办法一键将所有子文档都添加到数据库中(类似目录插件功能)

  • 思源笔记

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

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

    23126 引用 • 93133 回帖 • 1 关注
  • Q&A

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

    8508 引用 • 38775 回帖 • 153 关注
1 操作
ONIONLYONE 在 2024-08-31 16:25:37 更新了该帖
被采纳的回答
  • wilsons 2

    补充说明:

    该贴不再维护,有需要的用户请移步至 批量导入文档到数据库 0.0.6 版全新发布


    关于一键将所有子文档都添加到数据库中,今天我试着实现了这个功能。

    代码如下

    使用方法:

    把上述代码粘贴到嵌入 SQL 代码块中即可(任意文件都可),即输入{{}}后在弹出的输入框中填入即可。

    然后修改变量 docBlockId 为你要导入的父文档块 id,变量 dbBlockId 为你要导入的数据库的块 id。变量 docsSql 为你要查询的 SQL 语句逻辑,请根据实际情况修改,详情请看代码注释。

    然后,执行结果如下,然后重新打开或按 F5 刷新数据库所在页面即可查看到导入结果。

    image.png

    注意事项:

    1. 数据导入有风险,请做好备份工作再进行尝试。
    2. 数据量巨大时可能存在性能问题。

    再次提醒!!!请在新空间测试无误后使用,使用前请做好备份!!!

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 第四版,发现了点小问题,在运行后,| 这个光标没了,很奇怪image.png

  • 其他回帖
  • 大佬,能不能再加个可选择的功能:只添加,子文档,不添加子文档的子文档。

    如果添加子文档的子文档(套娃),很不好整理,往往只需要部分子文档的子文档。
    这样每次刷新都要删除一遍不想插入的,很麻烦,尤其是文档过多的时候。辛苦了!

    1 回复
  • wilsons 2

    查询未加入数据库的文档,这个用普通的 SQL 是无法查询的,因为数据库中的文档在 sqlite 中并没有索引。

    这个需要从数据库文件中读取插入的文档,然后在 SQL 查询中再排除这些文档就行了。

    下面是个解决方案的示例,不知是否满足你的需求。

    代码如下(链滴字数限制,只能把代码放到其他平台了):

    使用方法:

    将上述代码放到 SQL 块中即可,即输入{{}}后,在弹出的 SQL 输入框中输入即可。

    代码说明:

    这个示例也可以解决你问题修改前的那种查询方式,只需要把 and path like '/xxxx-xxxx%' 开启即可,如果不包含父文档自身,把 and id != 'xxxx-xxxx' 开启即可,详情见代码注释说明。

    其实,这个查询方式的本质和正常查询没有任何区别,无非在最后加了排除数据库文档的条件罢了。

    开启 formatByTitle(result);,查询的结果是显示文档的标题,不开启查询的结果是显示文档的内容,思源默认的是显示文档的内容。

    另外,如果数据量巨大,这种方式可能存在性能问题,数据量巨大的情况下,最好的方法是提前对数据库内容做索引,由于方法复杂,如果有需求请自行研究实现。

    效果如下:

    开启 formatByTitle(result);结果

    image.png

    未开启 formatByTitle(result);结果

    image.png

    关于,一键将所有子文档都添加到数据库,目前只能通过 ctrl+ 点击多选,然后拖动到数据库里,其它应该尚未有更好办法吧,期待大佬们有更好解决方式!

    或许可以通过修改数据库 json 的方式实现吧,但这样修改文件可能存在未知风险,你如果不在意的话倒是可以尝试下。

    1 回复
    1 操作
    wilsons 在 2024-08-31 17:41:18 更新了该回帖
  • 一键添加到数据库的话,可以考虑:

    1: quicker 动作;

    插入子文档到数据库 - by 浅沧 - 动作信息 - Quicker (getquicker.net)

    2: listChildDocs 挂件;

    1 回复
  • 查看全部回帖

推荐标签 标签

  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    546 引用 • 672 回帖
  • SQLite

    SQLite 是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是全世界使用最为广泛的数据库引擎。

    5 引用 • 7 回帖
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    209 引用 • 358 回帖
  • jsoup

    jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。

    6 引用 • 1 回帖 • 484 关注
  • 互联网

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

    98 引用 • 344 回帖
  • SVN

    SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。

    29 引用 • 98 回帖 • 692 关注
  • uTools

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

    6 引用 • 14 回帖 • 1 关注
  • flomo

    flomo 是新一代 「卡片笔记」 ,专注在碎片化时代,促进你的记录,帮你积累更多知识资产。

    5 引用 • 107 回帖 • 1 关注
  • 架构

    我们平时所说的“架构”主要是指软件架构,这是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。另外还有“业务架构”、“网络架构”、“硬件架构”等细分领域。

    142 引用 • 442 回帖
  • RESTful

    一种软件架构设计风格而不是标准,提供了一组设计原则和约束条件,主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

    30 引用 • 114 回帖 • 3 关注
  • 设计模式

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

    200 引用 • 120 回帖
  • Vue.js

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

    265 引用 • 666 回帖
  • Hibernate

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

    39 引用 • 103 回帖 • 715 关注
  • Logseq

    Logseq 是一个隐私优先、开源的知识库工具。

    Logseq is a joyful, open-source outliner that works on top of local plain-text Markdown and Org-mode files. Use it to write, organize and share your thoughts, keep your to-do list, and build your own digital garden.

    6 引用 • 63 回帖 • 4 关注
  • PostgreSQL

    PostgreSQL 是一款功能强大的企业级数据库系统,在 BSD 开源许可证下发布。

    22 引用 • 22 回帖 • 4 关注
  • 小说

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

    28 引用 • 108 回帖
  • GAE

    Google App Engine(GAE)是 Google 管理的数据中心中用于 WEB 应用程序的开发和托管的平台。2008 年 4 月 发布第一个测试版本。目前支持 Python、Java 和 Go 开发部署。全球已有数十万的开发者在其上开发了众多的应用。

    14 引用 • 42 回帖 • 779 关注
  • 倾城之链
    23 引用 • 66 回帖 • 139 关注
  • 强迫症

    强迫症(OCD)属于焦虑障碍的一种类型,是一组以强迫思维和强迫行为为主要临床表现的神经精神疾病,其特点为有意识的强迫和反强迫并存,一些毫无意义、甚至违背自己意愿的想法或冲动反反复复侵入患者的日常生活。

    15 引用 • 161 回帖 • 2 关注
  • 微软

    微软是一家美国跨国科技公司,也是世界 PC 软件开发的先导,由比尔·盖茨与保罗·艾伦创办于 1975 年,公司总部设立在华盛顿州的雷德蒙德(Redmond,邻近西雅图)。以研发、制造、授权和提供广泛的电脑软件服务业务为主。

    8 引用 • 44 回帖 • 1 关注
  • IDEA

    IDEA 全称 IntelliJ IDEA,是一款 Java 语言开发的集成环境,在业界被公认为最好的 Java 开发工具之一。IDEA 是 JetBrains 公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。

    181 引用 • 400 回帖
  • 微信

    腾讯公司 2011 年 1 月 21 日推出的一款手机通讯软件。用户可以通过摇一摇、搜索号码、扫描二维码等添加好友和关注公众平台,同时可以将自己看到的精彩内容分享到微信朋友圈。

    132 引用 • 795 回帖
  • Chrome

    Chrome 又称 Google 浏览器,是一个由谷歌公司开发的网页浏览器。该浏览器是基于其他开源软件所编写,包括 WebKit,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。

    62 引用 • 289 回帖
  • 国际化

    i18n(其来源是英文单词 internationalization 的首末字符 i 和 n,18 为中间的字符数)是“国际化”的简称。对程序来说,国际化是指在不修改代码的情况下,能根据不同语言及地区显示相应的界面。

    8 引用 • 26 回帖
  • sts
    2 引用 • 2 回帖 • 197 关注
  • 又拍云

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

    21 引用 • 37 回帖 • 549 关注
  • WebSocket

    WebSocket 是 HTML5 中定义的一种新协议,它实现了浏览器与服务器之间的全双工通信(full-duplex)。

    48 引用 • 206 回帖 • 321 关注