0

我想手动更新托管文档而不增加新版本。

我注意到更新 uri 引用的文档不会传播到最新版本指向的文档 - 我需要直接在最新版本中进行另一个更新。

这种黑客行为是否有任何不良后果或我错过了什么?

let $uri := "/docs/doc.xml"

let $doc := fn:doc($uri)/doc
let $_ := xdmp:node-replace($doc/element/text(), text { "changed" })

let $hist := dls:document-history($uri)
let $docFromHist := dls:document-version($uri, max(data($hist//dls:version-id)))/doc
let $_ := xdmp:node-replace($docFromHist/element/text(), text { "changed" })
4

1 回答 1

0

根据文档,您不能在图书馆服务管理下的文档上使用节点更新功能:

https://docs.marklogic.com/guide/app-dev/dls#id_87706

您不能对托管文档使用节点更新功能,例如 xdmp:node-replace。

相反,您需要从 dls 库中运行适当的函数,在本例中为dls:document-update()

于 2017-10-10T08:48:16.303 回答