不确定如何使用以下结构查询匹配的mongo db对象的directory_object_ids。
"_id" : ObjectId("5702e52e51c2e40f55b3fd43"),
"_revision" : 4,
"enabled" : true,
"selector" : {
"directory_object_ids" : [
ObjectId("56c4bfb793e0be0eb6297369"),
ObjectId("56c4bfc293e0be0eb6297391"),
ObjectId("56cdfc65f2325d0e6346b7fe")
]
}
我已经尝试了
db.policies.find({"selector":{"directory_object_ids":{$elemMatch: {$eq:ObjectId("56cdfc65f2325d0e6346b7fe")}}}}).pretty()
和
db.policies.find({"selector":{"directory_object_ids": {$eq:ObjectId("56cdfc65f2325d0e6346b7fe")}}}).pretty()
没有运气。
提前谢谢你。
答案 0 :(得分:3)
直接调用find
查询中的嵌套对象:
db.policies.find({"selector.directory_object_ids": ObjectId("56cdfc65f2325d0e6346b7fe")}).pretty()
如果要请求所有指定项目中至少有一项匹配的记录,请使用$in
:
db.policies.find({
"selector.directory_object_ids": {
$in: [ObjectId("56c4bfc293e0be0eb6297391"), ObjectId("56cdfc65f2325d0e6346b7fe")]
}
}).pretty()
如果您想要请求匹配所有指定项目的记录,请使用$all
:
db.policies.find({
"selector.directory_object_ids": {
$all: [ObjectId("56c4bfc293e0be0eb6297391"), ObjectId("56cdfc65f2325d0e6346b7fe")]
}
}).pretty()