2016-11-02 132 views
0

我有一個將事件ID存儲在事件數組中的集合(collectionA)。事件數組信息來自(collectionB)。 最近,通過Web應用程序從CollectionB中刪除事件時,它有時不會從集合A中刪除,因爲它應該如此。跨多個集合的MongoDB查詢

是否有一個查詢我可以在mongo 3.0中進行檢查以查看CollectionA中存在的哪些event_id不在collectionB中。那些將在開發團隊解決問題時需要刪除的那些?

+1

$查找,如果這就是你所期待的將進行連接操作。 – HARDI

回答

1

下面是一個簡單的查詢,會給你這樣的對象的列表,假定,collectionA與IDS事件陣列從collectionB

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

這就是我一直在尋找的,非常感謝! – Govna