2016-04-04 250 views
-1

可以說我有一個名爲Messages的集合,並且可以通過檢查message_id是否可以找到多個父母在parent_id數組中,parent_id是一個數組。Mongo FIND查詢返回兩個文檔的字段包含相同的值(其中一個是數組)

{ 
    message_id : 22, 
    parent_id: [22,11], 
} 

我該如何創建一個mongo查詢來找到它?

現在我有以下的,但它失敗:

db.messages.find({this.message_id: { $in: this.parent_id}}) 
+0

這絕對不是「MongoDB Aggregation - 如果數組中的值匹配」的副本。這個問題是關於聚合的問題。我指的是mongo查找查詢。他們是MongoDB中的兩個完全不同的查詢。 – aruuuuu

回答

0

正如你可能知道蒙戈DB不支持聯接,我建議你在應用層面做到這一點,利用蒙戈殼牌,你可以運行類似這個。

//Get the message in which you are interested to get their parents 
var child = db.messages.findOne({message_id: 22}); 
//Go with the array to search the parents. 
db.messages.find({message_id : { $in : child.parent_id }}); 

我認爲你需要分兩步做,除非有人知道更優雅的解決方案。

相關問題