跨多个集合的MongoDB查询

时间:2016-11-02 20:21:11

标签: mongodb

我有一个集合(collectionA),它在事件数组中存储事件ID。事件数组信息来自(collectionB)。 最近,当通过网络应用程序从CollectionB中删除某个事件时,它有时不会从集合A中删除它。

我是否可以在mongo 3.0中进行查询,以查看CollectionA中哪些event_id存在于collectionB中。那些将在开发团队解决问题时需要删除的那些?

1 个答案:

答案 0 :(得分:1)

这是一个示例查询,它将为您提供此类对象的列表,假设,collectionA具有带有来自collectionB的ID的事件数组

db.collectionA.aggregate([
  {$unwind: '$events'},
  {$lookup: {
      from: 'collectionB',
      localField: 'events',
      foreignField: '_id',
      as: 'event'
      }},
      {$unwind: {path: '$event', preserveNullAndEmptyArrays:true}},          
      {$match:{ 'event': {$exists:false}}},
])