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

  • 思源笔记

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

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

    22253 引用 • 88945 回帖
  • Q&A

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

    8076 引用 • 36887 回帖 • 162 关注
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. 数据量巨大时可能存在性能问题。

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

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 不客气,我觉得这个功能有时候还挺实用的,等会我把脚本打上版本号,后续有问题可以再反馈,如果发现论坛的版本号比你本地的高就说明有版本更新了 😄 。

    4 回复
  • 其他回帖
  • 一键添加到数据库的话,可以考虑:

    1: quicker 动作;

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

    2: listChildDocs 挂件;

    1 回复
  • ONIONLYONE

    大佬,我开新空间测试了下,目前并没有发现问题,完美实现了我的需求。

    我不会编程,想请教下该代码是不是只是更改数据库 json 文件和对应的数据库块,对子文档的数据影响风险较小?

    1 回复
    1. 光标问题,先确定是否脚本引起的问题,新空间测试排除干扰项。如果确定有问题,请给出问题的详细描述和重现步骤。另外,脚本已更新到 version 0.0.5,试试是否有问题。
    2. 关于排除后代文档问题,首先,这个脚本并没有限制导入的内容,导入的内容由你的 SQL 查询决定的,即可以是文档内容,也可以是其他等。这里,你要想实现只导入直接子文档,而不导入后代子文档的话,可以在 SQL 中添加查询条件 and (LENGTH(path) - LENGTH(REPLACE(path, '/', ''))) / LENGTH('/') <= 2 来实现,不过我在 0.0.5 版本中默认加了这个功能,所以,你只需要把变量 const maxLevel 设置为 2,即 const maxLevel = 2 即可。注意,这个层级是从父文档开始算 1 级,然后往后嵌套最大层级数。

    再次重申,这个脚本具体导入数据库的内容,脚本并没限制,由你的 SQL 查询决定的,你可以导入任何你查询到的结果。

    另外, @ONIONLYONE @chenhao54180.0.5 使用官方 api 插入文档到数据库,彻底解决了 0.0.2 中,文档名修改后数据库无法更新名称的问题,并且插入文档后能自动刷新数据库,不再需要手动刷新页面。

    0.0.5 注意事项:

    1. 打开文档或刷新页面时默认不执行脚本,如果想要执行,把 runOnLoad 改为 true 即可
    2. 执行前弹出确认对话框,关闭的话,把 showConfirm 设为 false 即可
    3. 新增导入文档的排序方式,默认按照文档树里的顺序导入,如果想按 SQL 查询结果导入,把 sortByTreeOrder 设为 false 即可,该参数仅对导入文档有效,导入普通块无效。
    4. 新增导入文档的层级,默认 7 级,即从父文档 1 级,开始往下算,默认最大 7 级,如果想修改限制,修改 maxLevel 参数即可。
    5. 新增自定义备注,即当页面加载后,脚本上显示的提示文字,修改 memo 参数可自定义。
    6. 由于 0.0.5 抛弃了修改 json 的方式,使用官方 api 导入数据库,因此没有未知风险。但由于官方 api 没有统计成功和失败的文档数,因此结果只显示导入的文档数,不过一般不会失败,已导入的会忽略。

    后续可能新增功能:

    1. 可以把修改过的代码保存为模板,下次直接通过斜杠命令 =》模板 =》你保存的模板名直接打开,不用再复制粘贴。
    2. 执行前的预览和确认
    3. 从模板加载时,可根据需要弹出输入文档块 id 和数据库 id 的输入框,然后执行完后删除嵌入块即可,适合临时使用。
    1 回复
  • 查看全部回帖

推荐标签 标签

  • 单点登录

    单点登录(Single Sign On)是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

    9 引用 • 25 回帖
  • Telegram

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

    5 引用 • 35 回帖
  • Mobi.css

    Mobi.css is a lightweight, flexible CSS framework that focus on mobile.

    1 引用 • 6 回帖 • 740 关注
  • uTools

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

    6 引用 • 14 回帖
  • 阿里云

    阿里云是阿里巴巴集团旗下公司,是全球领先的云计算及人工智能科技公司。提供云服务器、云数据库、云安全等云计算服务,以及大数据、人工智能服务、精准定制基于场景的行业解决方案。

    89 引用 • 345 回帖
  • 倾城之链
    23 引用 • 66 回帖 • 136 关注
  • Sillot

    Insights(注意当前设置 master 为默认分支)

    汐洛彖夲肜矩阵(Sillot T☳Converbenk Matrix),致力于服务智慧新彖乄,具有彖乄驱动、极致优雅、开发者友好的特点。其中汐洛绞架(Sillot-Gibbet)基于自思源笔记(siyuan-note),前身是思源笔记汐洛版(更早是思源笔记汐洛分支),是智慧新录乄终端(多端融合,移动端优先)。

    主仓库地址:Hi-Windom/Sillot

    文档地址:sillot.db.sc.cn

    注意事项:

    1. ⚠️ 汐洛仍在早期开发阶段,尚不稳定
    2. ⚠️ 汐洛并非面向普通用户设计,使用前请了解风险
    3. ⚠️ 汐洛绞架基于思源笔记,开发者尽最大努力与思源笔记保持兼容,但无法实现 100% 兼容
    29 引用 • 25 回帖 • 83 关注
  • ActiveMQ

    ActiveMQ 是 Apache 旗下的一款开源消息总线系统,它完整实现了 JMS 规范,是一个企业级的消息中间件。

    19 引用 • 13 回帖 • 670 关注
  • 开源中国

    开源中国是目前中国最大的开源技术社区。传播开源的理念,推广开源项目,为 IT 开发者提供了一个发现、使用、并交流开源技术的平台。目前开源中国社区已收录超过两万款开源软件。

    7 引用 • 86 回帖
  • 黑曜石

    黑曜石是一款强大的知识库工具,支持本地 Markdown 文件编辑,支持双向链接和关系图。

    A second brain, for you, forever.

    15 引用 • 122 回帖
  • 爬虫

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

    106 引用 • 275 回帖
  • RESTful

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

    30 引用 • 114 回帖 • 1 关注
  • Vue.js

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

    266 引用 • 665 回帖 • 2 关注
  • 设计模式

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

    200 引用 • 120 回帖
  • CongSec

    本标签主要用于分享网络空间安全专业的学习笔记

    1 引用 • 1 回帖 • 6 关注
  • Python

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

    541 引用 • 672 回帖
  • WebClipper

    Web Clipper 是一款浏览器剪藏扩展,它可以帮助你把网页内容剪藏到本地。

    3 引用 • 9 回帖
  • Git

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

    209 引用 • 358 回帖 • 1 关注
  • 996
    13 引用 • 200 回帖 • 4 关注
  • Swift

    Swift 是苹果于 2014 年 WWDC(苹果开发者大会)发布的开发语言,可与 Objective-C 共同运行于 Mac OS 和 iOS 平台,用于搭建基于苹果平台的应用程序。

    36 引用 • 37 回帖 • 532 关注
  • sts
    2 引用 • 2 回帖 • 199 关注
  • 代码片段

    代码片段分为 CSS 与 JS 两种代码,添加在 [设置 - 外观 - 代码片段] 中,这些代码会在思源笔记加载时自动执行,用于改善笔记的样式或功能。

    用户在该标签下分享代码片段时需在帖子标题前添加 [css] [js] 用于区分代码片段类型。

    63 引用 • 348 回帖 • 1 关注
  • JRebel

    JRebel 是一款 Java 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。

    26 引用 • 78 回帖 • 662 关注
  • CSS

    CSS(Cascading Style Sheet)“层叠样式表”是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。

    197 引用 • 549 回帖
  • 资讯

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

    55 引用 • 85 回帖
  • 链滴

    链滴是一个记录生活的地方。

    记录生活,连接点滴

    153 引用 • 3783 回帖 • 1 关注
  • 书籍

    宋真宗赵恒曾经说过:“书中自有黄金屋,书中自有颜如玉。”

    77 引用 • 390 回帖