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 に答える