我想手动更新托管文档而不必增加到新版本。
我注意到更新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" })
答案 0 :(得分:0)
根据文档,您无法在库服务管理下的文档中使用节点更新功能:
https://docs.marklogic.com/guide/app-dev/dls#id_87706
您不能将节点更新功能(例如xdmp:node-replace)与托管文档一起使用。
相反,您需要从dls库运行相应的函数,在本例中为dls:document-update()