2014-02-16 314 views
0

我遇到以下問題。一般來說,我有一個集合持物結構如下:MongoDB:按數組元素查找元素

{ 
    _id: ObjectId("4f941bb2e4b06c6af7f80a0d"), 
    fooId: ObjectId("4f941bb2e4b06c6af7e50aff"), 
    barsIds: [ObjectId("4f941bb2f5606c6af7f80ff5"), ObjectId("4f941bbc3fb06c6af7f80ccf")] 
} 

什麼是查找包含在barsIds財產給定的ID集合中的所有元素的查詢?

它是這樣的:

db.collectionName.find({"barsIds" : [ { "$oid" : "5300c6ba4a5ce5614bcd5d9a"}]}) 

回答

1

這正是你在找什麼:

db.collectionName.find({"barsIds" : ObjectId("4f941bb2f5606c6af7f80ff5") }) 

此查詢查找文件,其barsIds元素被給定對象的ID。或者,如果barsIds是一個數組,則此查詢將查找barsIds元素包含給定對象ID的文檔。

0

嘗試用這樣的

db.collectionName.find({:barsIds => {"$in" => BSON::ObjectId("5300c6ba4a5ce5614bcd5d9a")}})