-
思源笔记
22253 引用 • 88945 回帖
思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。
融合块、大纲和双向链接,重构你的思维。
-
Q&A
8076 引用 • 36887 回帖 • 162 关注
提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。
相关帖子
-
wilsons • • 2付费者 捐赠者
补充说明:
该贴不再维护,有需要的用户请移步至 批量导入文档到数据库 0.0.6 版全新发布
关于一键将所有子文档都添加到数据库中,今天我试着实现了这个功能。
代码如下
使用方法:
把上述代码粘贴到嵌入 SQL 代码块中即可(任意文件都可),即输入{{}}后在弹出的输入框中填入即可。
然后修改变量
docBlockId
为你要导入的父文档块 id,变量dbBlockId
为你要导入的数据库的块 id。变量docsSql
为你要查询的 SQL 语句逻辑,请根据实际情况修改,详情请看代码注释。然后,执行结果如下,然后重新打开或按 F5 刷新数据库所在页面即可查看到导入结果。
注意事项:
- 数据导入有风险,请做好备份工作再进行尝试。
- 数据量巨大时可能存在性能问题。
再次提醒!!!请在新空间测试无误后使用,使用前请做好备份!!!
- 其他回帖
-
一键添加到数据库的话,可以考虑:
1: quicker 动作;
插入子文档到数据库 - by 浅沧 - 动作信息 - Quicker (getquicker.net)
2: listChildDocs 挂件;
1 回复 -
大佬,我开新空间测试了下,目前并没有发现问题,完美实现了我的需求。
我不会编程,想请教下该代码是不是只是更改数据库 json 文件和对应的数据库块,对子文档的数据影响风险较小?
1 回复 -
- 光标问题,先确定是否脚本引起的问题,新空间测试排除干扰项。如果确定有问题,请给出问题的详细描述和重现步骤。另外,脚本已更新到 version 0.0.5,试试是否有问题。
- 关于排除后代文档问题,首先,这个脚本并没有限制导入的内容,导入的内容由你的 SQL 查询决定的,即可以是文档内容,也可以是其他等。这里,你要想实现只导入直接子文档,而不导入后代子文档的话,可以在 SQL 中添加查询条件
and (LENGTH(path) - LENGTH(REPLACE(path, '/', ''))) / LENGTH('/') <= 2
来实现,不过我在 0.0.5 版本中默认加了这个功能,所以,你只需要把变量 const maxLevel 设置为 2,即 const maxLevel = 2 即可。注意,这个层级是从父文档开始算 1 级,然后往后嵌套最大层级数。
再次重申,这个脚本具体导入数据库的内容,脚本并没限制,由你的 SQL 查询决定的,你可以导入任何你查询到的结果。
另外, @ONIONLYONE @chenhao5418 ,0.0.5 使用官方 api 插入文档到数据库,彻底解决了 0.0.2 中,文档名修改后数据库无法更新名称的问题,并且插入文档后能自动刷新数据库,不再需要手动刷新页面。
0.0.5 注意事项:
- 打开文档或刷新页面时默认不执行脚本,如果想要执行,把
runOnLoad
改为 true 即可 - 执行前弹出确认对话框,关闭的话,把
showConfirm
设为 false 即可 - 新增导入文档的排序方式,默认按照文档树里的顺序导入,如果想按 SQL 查询结果导入,把
sortByTreeOrder
设为 false 即可,该参数仅对导入文档有效,导入普通块无效。 - 新增导入文档的层级,默认 7 级,即从父文档 1 级,开始往下算,默认最大 7 级,如果想修改限制,修改
maxLevel
参数即可。 - 新增自定义备注,即当页面加载后,脚本上显示的提示文字,修改
memo
参数可自定义。 - 由于 0.0.5 抛弃了修改 json 的方式,使用官方 api 导入数据库,因此没有未知风险。但由于官方 api 没有统计成功和失败的文档数,因此结果只显示导入的文档数,不过一般不会失败,已导入的会忽略。
后续可能新增功能:
- 可以把修改过的代码保存为模板,下次直接通过斜杠命令 =》模板 =》你保存的模板名直接打开,不用再复制粘贴。
- 执行前的预览和确认
- 从模板加载时,可根据需要弹出输入文档块 id 和数据库 id 的输入框,然后执行完后删除嵌入块即可,适合临时使用。
1 回复 - 查看全部回帖