我有一个集合(collectionA),它在事件数组中存储事件ID。事件数组信息来自(collectionB)。 最近,当通过网络应用程序从CollectionB中删除某个事件时,它有时不会从集合A中删除它。
我是否可以在mongo 3.0中进行查询,以查看CollectionA中哪些event_id存在于collectionB中。那些将在开发团队解决问题时需要删除的那些?
答案 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}}},
])