【问题标题】:Query Nested Mongo Array查询嵌套的 Mongo 数组
【发布时间】:2016-07-26 23:41:20
【问题描述】:

不确定如何为具有以下结构的 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()

没有运气。

提前谢谢你。

【问题讨论】:

    标签: arrays mongodb nested find mongodb-query


    【解决方案1】:

    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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-06
      • 2019-12-04
      • 2014-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-13
      相关资源
      最近更新 更多