gpt4 book ai didi

xquery - 在 marklogic 中更新整个文档的最佳方法

转载 作者:行者123 更新时间:2023-12-01 08:26:01 25 4
gpt4 key购买 nike

我想替换数据库中没有任何元数据(例如权限、属性或集合)的 xml 文档。托管文档 (dls) 不是一种选择。

使用 xdmp:document-insert() 不会保留权限、集合等

使用 xdmp:node-replace() 可以很好地处理文档的某些部分,但需要提前知道根节点。

是否有推荐的方法来更新 MarkLogic 中的整个文档?

最佳答案

您实际上并不需要知道根元素本身。如果您知道文档 URI,则可以执行以下操作:

xdmp:node-replace(fn:doc($uri)/*, $new-xml)

如果你有文档的任何节点,你也可以这样做:

xdmp:node-replace($node/fn:root(), $new-xml)

但是仅仅使用 xdmp:document-insert() 也没有那么困难:

xdmp:document-insert($uri, $new-xml, xdmp:document-get-permissions($uri), xdmp:document-get-collections($uri), xdmp:document-get-quality($uri))

注意:文档属性保存在文档插入处。另见:http://docs.marklogic.com/xdmp:document-insert

此外,这些方法之间没有太大的性能差异。在这方面最大的区别是 xdmp:node-replace() 需要来自原始文档的节点,这意味着必须首先从数据库中检索它。如果替换不依赖于原始文档,那么 xdmp:document-insert() 会最快。

HTH!

关于xquery - 在 marklogic 中更新整个文档的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35100631/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com