MongoDB查询,使用游标过滤

时间:2017-04-12 21:43:25

标签: mongodb mongodb-query

我有两个集合,一个有_id和UserId,另一个有UserId(相同的唯一标识符)和“其他数据”。

我想根据前一个集合中的_ids列表过滤后一个集合。

有人可以为此方案提供示例查询吗?

1 个答案:

答案 0 :(得分:0)

加入'的唯一方法MongoDB中的集合是$lookup聚合阶段(版本3.2中提供)。

firstCollection.aggregate([
  { $match: { _id: {$in: [1,2,3] }}}, // filter by _ids
  {
     $lookup:
     {
        from: "secondCollection",
        localField: "UserId",
        foreignField: "UserId",
        as: "data"
     }
  }   
])

这将添加'数据'第一个集合中的文档字段,其中包含第二个集合中的所有相关文档。如果关系不是1:1,则可以添加$unwind阶段以展平结果:

   {$unwind: "$data"}