MarkLogic中cts.uris的输出类型是什么?

时间:2019-02-18 11:18:21

标签: javascript object types marklogic

我在搜索查询中使用了cts.uris。我将其分配给一个变量,如:

var x = cts.uris(...);

x的输出类型是什么?

我在我的应用程序中使用JSON文档,并希望在某些2个对象上使用xdmp.nodeReplace。在cts.uris内编写搜索查询后,检查“ x”的值是否有效后,我正在对文档进行更新。

if(x.toString().length>0)

//x is cts.uris output. Checking if it gets a value then do the update like this.

{

var newObject = x; 

newObject.field1="new value";
//field 1 value updated in the clone of original file

newObject.field2="new value"; //same as above

 return xdmp.nodeReplace(x, newobj);

}

我希望newObject拥有原始文件的所有内容,这些原始文件我们要提取并放入“ x”,然后按照上述代码中的给定更新值。 更新后,应使用新值替换原始文档。 我目前收到类似“ XDMP-ARGTYPE:xdmp.nodeReplace”的错误

1 个答案:

答案 0 :(得分:0)

cts.uris返回一个Sequence uris。您可能想使用JavaScript for..of构造遍历Sequence。上面的链接中给出了一个示例。

请注意,虽然uri不是完整的文档,而只是其标识符。这样给它赋值是没有意义的。

要在MarkLogic内部更新文档,请重新插入文档,或使用cts.doc对其进行读取,隔离要更新的属性,并按预期的方式替换它。

HTH!