Marklogic Javascript for 循环
Marklogic Javascript for loop
我有多个 json 格式。我怎样才能遍历 json 个文件来显示开发者的名字。谢谢
示例:
doc1.json
{
"script": "collectionlib.sjs"
"version": "1.0.1"
"Developers":"Melvin Mckee"
}
doc2.json
{
"script": "TechReports.sjs"
"version": "1.1.5"
"Developers":"Brenton York"
}
我可以为单个 json 文件做。
'use strict';
var doc = cts.doc("/doc1.json")
var node = xdmp.toJSON(doc)
node.root.Developers
//Return result: "Melvin Mckee"
但不确定如何构建 For..Loop 以返回结果开发者名称是 "Melvin Mckee" 和 "Brenton York"
var items = cts.uris(null,
null,
cts.collectionQuery("scripts-collection")
)
for (var i = 0; i < items.length;i++){
var doc = cts.doc(items[i]);
var node = xdmp.toJSON(doc);
node.root.developers
}
我在 Qconsole 上得到的结果为 NULL。
部分问题是 node.root.developers
是小写 'd',而您提供的数据是大写 'D'。那可能是一个错字。
MarkLogic return 是最后一个表达式的值,但是 for 循环没有 return 一个值。你想要做的是在循环之前声明一个数组变量,在循环期间添加到它,然后 return 该变量。
试试这个:
let uris =
cts.uris(
null,
null,
cts.collectionQuery("scripts-collection")
)
let devs = [];
for (let uri of uris) {
let doc = cts.doc(uri);
let node = xdmp.toJSON(doc);
devs.push(node.root.Developers);
}
devs
我有多个 json 格式。我怎样才能遍历 json 个文件来显示开发者的名字。谢谢
示例:
doc1.json
{
"script": "collectionlib.sjs"
"version": "1.0.1"
"Developers":"Melvin Mckee"
}
doc2.json
{
"script": "TechReports.sjs"
"version": "1.1.5"
"Developers":"Brenton York"
}
我可以为单个 json 文件做。
'use strict';
var doc = cts.doc("/doc1.json")
var node = xdmp.toJSON(doc)
node.root.Developers
//Return result: "Melvin Mckee"
但不确定如何构建 For..Loop 以返回结果开发者名称是 "Melvin Mckee" 和 "Brenton York"
var items = cts.uris(null,
null,
cts.collectionQuery("scripts-collection")
)
for (var i = 0; i < items.length;i++){
var doc = cts.doc(items[i]);
var node = xdmp.toJSON(doc);
node.root.developers
}
我在 Qconsole 上得到的结果为 NULL。
部分问题是 node.root.developers
是小写 'd',而您提供的数据是大写 'D'。那可能是一个错字。
MarkLogic return 是最后一个表达式的值,但是 for 循环没有 return 一个值。你想要做的是在循环之前声明一个数组变量,在循环期间添加到它,然后 return 该变量。
试试这个:
let uris =
cts.uris(
null,
null,
cts.collectionQuery("scripts-collection")
)
let devs = [];
for (let uri of uris) {
let doc = cts.doc(uri);
let node = xdmp.toJSON(doc);
devs.push(node.root.Developers);
}
devs