这是我简化的数据结构:
测试(测试):
[{
_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)
}
}
]
但是我无法弄清楚如何扩展查询以进行第二级查找以在同一查询中获取批次名称。
感谢您的帮助