在不增加版本的情况下手动更新托管文档

Manualy update managed documents without incrementing version

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

我注意到更新 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" })

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

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

You cannot use node update functions, such as xdmp:node-replace, with managed documents.

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