Mongoose сравнивает со значением вложенного поля третьего уровня
2 ответа
Решение
Вы должны использовать поиск, раскручивать и сопоставлять, вот непроверенное решение вашей проблемы
Model.aggregate([
{
$match: {
_id: req.parmas.id
}
},
{
$lookup: {
from: "collection2",
localField: "collection2",
foreignField: "_id",
as: "Collection2"
}
},
{
$unwind: "$ColelctionTwo"
},
{
$lookup: {
from: "collection3",
localField: "CollectionTwo.collection3",
foreignField: "_id",
as: "Collection3"
}
},
{
$lookup: {
from: "collection4",
localField: "CollectionTwo.collection4",
foreignField: "_id",
as: "Collection4"
}
}
]).exec(function(err, result) {
if(err) {
// handle here
}
if(result) {
// do something here...
}
}
Вы можете использовать этапы $lookup или $ graphlookup агрегированного фреймворка mongodb для запросов нескольких коллекций. Документы Mongoose для агрегации https://mongoosejs.com/docs/api.html Вы не можете выполнить простой запрос поиска для поиска в нескольких коллекциях.