Какой тип вывода cts.uris в MarkLogic? - PullRequest
0 голосов
/ 18 февраля 2019

Я использую cts.uris в своем поисковом запросе.Я назначаю его переменной, например:

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

Какой тип вывода x?

Я использую документы JSON в своем приложении и хочу использовать xdmp.nodeReplace onоколо 2 предметов.Я выполняю обновление моего документа после проверки правильности значения «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»

1 Ответ

0 голосов
/ 18 февраля 2019

cts.uris возвращает последовательность uris.Возможно, вы захотите перебрать последовательность, используя конструкцию JavaScript for..of.Пример приведен в приведенной выше ссылке.

Обратите внимание, что URI - это не полный документ, а просто его идентификатор.Не имеет смысла присваивать ему такие значения.

Чтобы обновить документы в MarkLogic, либо заново вставьте документ, либо прочитайте его, используя cts.doc , изолируйте свойствоВы хотите обновить, и узел замените его, как вы и предполагали.

HTH!

...