我一直在 Marklogic 中遇到更新冲突的问题。我知道原因,但我不知道如何解决它。我有 1 个主(.sjs)文件,它调用两个不同的( .sjs)文件,它们都更新一组文档。在我使用的主文件中:declareUpdate({explicitCommit: true});
然后在xdmp.commit();
更新文档后在单独的文件中使用命令。但是,我仍然得到:XDMP-CONFLICTINGUPDATES
。
部分代码:Main.sjs:
function main(){
declareUpdate({explicitCommit: true});
function.to.file.1();
function.to.file.2();
}
文件 1.sjs:
//make some docs and insert them into ML
function file1Function(){
for (let d of someCollectionOfData) {
xdmp.documentInsert('/a/uri/filexx.json', d, {collections: aCollectionName1});
};
xdmp.commit();
}
文件2.sjs:
//adjust docs made in file1 and put them back into ML
funtion file2Function(){
for (let d of xdmp.directory('/location/of/aCollectionName1/','infinity')) {
let dObj = d.toObject();
dObj.addSomething = 'something';
xdmp.documentInsert(fn.documentUri(d), dObj, {collections: aCollectionName1});
}
xdmp.commit();
}