Я использую функцию xdmp.eval для поиска и возврата документа в моей окончательной базе данных для использования в процессе согласования.
let finalDoc = xdmp.eval(
"fn.head(cts.search(cts.jsonPropertyValueQuery('Id',id,
['exact']),['unfiltered','score-zero']))",
{'id':id},
{"database" : xdmp.database("data-hub-FINAL")});
Документ возвращается в виде последовательности со следующей структурой:
{"SourceSystemName":"",
"BatchDtTm":"06/20/2018 15:05:15",
"SubjectArea":"Customer",
"DocumentType":"Registration",
"Id":"100",
"Contact":[
{"CustomerId":"1",
"FirstName":"",
"LastName":"",
"EmailId":""
},
{"CustomerId":"2",
"FirstName":"",
"LastName":"",
"EmailId":""
}
]
}
Мне нужно перебрать каждого клиента в массиве Contact , используя finalDoc.Contact.forEach () .Однако, когда я использую fn.head (finalDoc.toArray ()) или fn.head (finalDoc.toObject ()) для изменения последовательности finalDoc на массив, моя функция forEach завершается с ошибкой «Cannot read property»forEach 'of undefined ".Когда я просто пытаюсь вывести массив контактов, выполнив finalDoc.Contact (или finalDoc [0] .Contact), я получаю вывод «Null».
Как извлечь массив Contact из последовательностии перебрать его с помощью forEach?Спасибо!