Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
循环的MarkLogicJavaScript_Marklogic - Fatal编程技术网

循环的MarkLogicJavaScript

循环的MarkLogicJavaScript,marklogic,Marklogic,我有多种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

我有多种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"
但不确定如何构造..循环以返回结果开发人员的名字是“Melvin Mckee”和“Brenton York”

var items=cts.uri(空,
无效的
cts.collectionQuery(“脚本集合”)
) 
对于(变量i=0;i

我在Qconsole上得到了空结果

部分问题是
节点.root.developers
的大小写为“d”,而您提供的数据的大小写为“d”。那可能是个打字错误

MarkLogic返回最后一个表达式的值,但for循环不返回值。您要做的是在循环之前声明一个数组变量,在循环期间添加到它,然后返回该变量

试试这个:

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

不确定您为items变量分配了什么,但只要items是一个文件路径数组,您的代码就是完美的,例如,如果您的items变量是['/doc1.json','/doc2.json'],它就可以工作。我从Marklogic Qconsole获得空值。它应该返回“Melvin Mckee”和“Brenton York”。嗯,我不熟悉marklogic,试着问另一个问题,为什么marklogic返回null,但是您的for循环非常好,应该可以工作。
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