mongo DB中的多级聚合查找

时间:2019-05-14 22:16:04

标签: node.js mongodb mongoose mongodb-query

这是我简化的数据结构:

测试(测试):

[{
   _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)
    }
  }
]

但是我无法弄清楚如何扩展查询以进行第二级查找以在同一查询中获取批次名称。

感谢您的帮助

0 个答案:

没有答案