Я хочу найти данные из любой из 2 коллекций. Если данные не найдены в первую очередь, они должны посмотреть во вторую коллекцию.
Я попытался использовать $ lookup с конвейером агрегации, но каким-то образом это не сработает в данном случае.
Я использую Mon goose здесь (версия 4.10.8)
У меня есть DestinationPage как одна коллекция, где я нахожу документ, соответствующий destinationPage_name , если я не получу данные (верну нулевое значение, если так), тогда я sh найду их в SpecialityPage коллекции, совпадающей с specialityPage_name .
DestinationPage.aggregate([
{ "$match" : { "destinationPage_name": { $regex: SEARCH_REF_DESTINATION, $options: 'i' } }},
{ "$lookup" : {
"from" : "SpecialityPage",
"localField" : "specialityPage_name",
"foreignField" : { $regex: SEARCH_REF_DESTINATION, $options: 'i' },
"as" : "data2"
}
},
]).then(doc => {
console.log('document', doc);
})
.catch(err => {
console.error("got error : ", err);
})
Приведенный выше код выдает ошибку как
"The 'cursor' option is required, except for aggregate with the explain argument"
Если я добавлю { cursor:{} }
к нему, я не вижу даже консольной печати.
ОПЦИЯ: Я могу проверить данные в одной коллекции, затем, если я не получаю никаких данных, то при обратном вызове я могу проверить другую коллекцию. Однако я не считаю это эффективным способом.
Спасибо.
'# stayhomestaysafe'