-
思源笔记
22929 引用 • 92193 回帖 • 1 关注
思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。
融合块、大纲和双向链接,重构你的思维。
-
Q&A
8405 引用 • 38304 回帖 • 156 关注
提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。
相关帖子
-
wilsons • • 2付费者 捐赠者
补充说明:
该贴不再维护,有需要的用户请移步至 批量导入文档到数据库 0.0.6 版全新发布
关于一键将所有子文档都添加到数据库中,今天我试着实现了这个功能。
代码如下
使用方法:
把上述代码粘贴到嵌入 SQL 代码块中即可(任意文件都可),即输入{{}}后在弹出的输入框中填入即可。
然后修改变量
docBlockId
为你要导入的父文档块 id,变量dbBlockId
为你要导入的数据库的块 id。变量docsSql
为你要查询的 SQL 语句逻辑,请根据实际情况修改,详情请看代码注释。然后,执行结果如下,然后重新打开或按 F5 刷新数据库所在页面即可查看到导入结果。
注意事项:
- 数据导入有风险,请做好备份工作再进行尝试。
- 数据量巨大时可能存在性能问题。
再次提醒!!!请在新空间测试无误后使用,使用前请做好备份!!!
-
查询未加入数据库的文档,这个用普通的 SQL 是无法查询的,因为数据库中的文档在 sqlite 中并没有索引。
这个需要从数据库文件中读取插入的文档,然后在 SQL 查询中再排除这些文档就行了。
下面是个解决方案的示例,不知是否满足你的需求。
代码如下(链滴字数限制,只能把代码放到其他平台了):
使用方法:
将上述代码放到 SQL 块中即可,即输入{{}}后,在弹出的 SQL 输入框中输入即可。
代码说明:
这个示例也可以解决你问题修改前的那种查询方式,只需要把
and path like '/xxxx-xxxx%'
开启即可,如果不包含父文档自身,把and id != 'xxxx-xxxx'
开启即可,详情见代码注释说明。其实,这个查询方式的本质和正常查询没有任何区别,无非在最后加了排除数据库文档的条件罢了。
开启
formatByTitle(result);
,查询的结果是显示文档的标题,不开启查询的结果是显示文档的内容,思源默认的是显示文档的内容。另外,如果数据量巨大,这种方式可能存在性能问题,数据量巨大的情况下,最好的方法是提前对数据库内容做索引,由于方法复杂,如果有需求请自行研究实现。
效果如下:
开启 formatByTitle(result);结果
未开启 formatByTitle(result);结果
关于,一键将所有子文档都添加到数据库,目前只能通过 ctrl+ 点击多选,然后拖动到数据库里,其它应该尚未有更好办法吧,期待大佬们有更好解决方式!
或许可以通过修改数据库 json 的方式实现吧,但这样修改文件可能存在未知风险,你如果不在意的话倒是可以尝试下。
1 回复1 操作wilsons 在 2024-08-31 17:41:18 更新了该回帖 - 其他回帖
-
一键添加到数据库的话,可以考虑:
1: quicker 动作;
插入子文档到数据库 - by 浅沧 - 动作信息 - Quicker (getquicker.net)
2: listChildDocs 挂件;
1 回复 -
哈哈,感谢建议!先用着,做插件和解决问题复杂度完全不一样。
就像产品和 demo 的区别,要做成产品就要通用,完善,兼容好,体验好,持续维护等。
而,demo 或临时解决方案是针对某一问题的。
可能你花 10% 的时间就能解决问题,但如果要把解决方案做成产品要花 80% 以上甚至更多的时间才行。
而且,业余做插件不易,我之前曾在空闲和有兴趣的时候做过不少插件(非思源的),后来发现维护和精力是个难题。如果不维护感觉不负责,维护的话有时实在精力有限。
所以,我觉得如果业余做插件,精心维护好一两个就足矣,多了真应付不来,毕竟现在各类软件都升级很快,不维护,很快就各种问题了。
借着这个问题,突然想到了这些,说一下自己的浅见,不一定正确哈 😄 。
-
- 查看全部回帖