gpt4 book ai didi

javascript - 在 Marklogic Javascript 中实现 For 循环?

转载 作者:行者123 更新时间:2023-11-30 20:49:46 27 4
gpt4 key购买 nike

我可以使用以下 XQuery 获取集合中文档的所有 URI:

for $doc in fn:collection("transform") 
return xdmp:node-uri($doc)

但是,当我尝试在 MarkLogic 的 Javascript 模块中实现它时,它只获取数据库集合中的最后一个文档。

'use strict';
declareUpdate()
var docs = fn.collection("transform");
for(var doc of docs) {
xdmp.nodeUri(doc)
}

它不会给出集合中的所有 URI,而是只返回文档的最后一个 URI。

我怎样才能让它返回所有的 URI?

最佳答案

创建一个数组并将每个 URI 添加到 for 循环中的该数组,然后返回该数组:

'use strict';
declareUpdate()
var docs = fn.collection("transform");
var results = [];
for (var doc of docs) {
results.push(xdmp.nodeUri(doc));
}
results;

或返回一个 Sequence 使用 Sequence.from() :

'use strict';
declareUpdate()
var docs = fn.collection("transform");
var results = [];
for (var doc of docs) {
results.push(xdmp.nodeUri(doc));
}
Sequence.from(results);

但是,如果您只想返回 URI,那么使用 cts.uris() 会更好/更容易用cts.collectionQuery() :

'use strict';
declareUpdate();
cts.uris("", null, cts.collectionQuery("transform"));

关于javascript - 在 Marklogic Javascript 中实现 For 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48307852/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com