Я использую cts.uris в своем поисковом запросе. Я присваиваю его переменной, например:
var x = cts.uris(...);
Каков тип вывода x?
Я использую документы JSON в своем приложении и хочу использовать xdmp.nodeReplace для некоторых двух объектов. Я выполняю обновление своего документа после проверки допустимости значения «x» после написания поискового запроса внутри cts.uris.
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».



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


cts.uris возвращает Последовательность uris. Вероятно, вы захотите перебрать последовательность, используя конструкцию JavaScript for..of. Пример приведен по ссылке выше.
Обратите внимание, что uri — это не полный документ, а только его идентификатор. Не имеет смысла присваивать ему такие значения.
Чтобы обновить документы внутри MarkLogic, либо повторно вставьте документ, либо прочитайте его с помощью cts.doc, изолируйте свойство, которое вы хотите обновить, и nodeReplace, как вы предполагали.
ХТХ!