Manualy更新托管文档而不增加版本

时间:2017-10-09 11:06:28

标签: marklogic marklogic-9

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

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

1 个答案:

答案 0 :(得分:0)

根据文档,您无法在库服务管理下的文档中使用节点更新功能:

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

  

您不能将节点更新功能(例如xdmp:node-replace)与托管文档一起使用。

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