Итак, вот моя упрощенная структура данных:
Тест (тест):
[{
_id:1,
name:"test1"
}]
Расписание испытаний (test_scheduled):
[{
_id:2,
testId:1,
batchIds:[1,2]
}]
Пакет (партия):
[{
_id:1,
name:"batch 1"
},{
_id:2,
name:"batch 2"
}]
Теперь мне нужно, чтобы результат выглядел следующим образом:
{ // Test
_id:1,
name:"test1",
test_scheduled:[{ // test scheduled
_id:2,
batches:[{ // batches
_id:1,
name:"batch 1"
},{
_id:2,
name:"batch 2"
}]
}]
}
Я могу достичь поиска первого уровня, используя это:
[ // querying test collection
{
$lookup:{
from: "tests_scheduled",
localField: "_id",
foreignField: "testId",
as: "tests_scheduled"
}
},
{
$match:{
_id:new DB.Mongo.ObjectID(testId)
}
}
]
Но я не могу понять, как расширить запрос, чтобы получить поиск второго уровня, чтобы получить имена пакетов в том же запросе.
Спасибо за вашу помощь