我遇到以下问题。通常我有一个包含以下结构的对象的集合:
{
_id: ObjectId("4f941bb2e4b06c6af7f80a0d"),
fooId: ObjectId("4f941bb2e4b06c6af7e50aff"),
barsIds: [ObjectId("4f941bb2f5606c6af7f80ff5"), ObjectId("4f941bbc3fb06c6af7f80ccf")]
}
在barsIds属性中查找集合中包含给定id的所有元素的查询是什么?
是这样的:
db.collectionName.find({"barsIds" : [ { "$oid" : "5300c6ba4a5ce5614bcd5d9a"}]})
答案 0 :(得分:1)
这正是您所寻找的:
db.collectionName.find({"barsIds" : ObjectId("4f941bb2f5606c6af7f80ff5") })
此查询查找barsIds
个元素被赋予对象ID的文档。或者,如果barsIds
是一个数组,则此查询会查找其barsIds
元素包含给定对象ID的文档。
答案 1 :(得分:0)
尝试使用类似的东西
db.collectionName.find({:barsIds => {"$in" => BSON::ObjectId("5300c6ba4a5ce5614bcd5d9a")}})