需要有关 Mongo 数据库查询的帮助

Need Help on Mongo DB query

系统中已有一个人员集合,如下所示:

{
    "_id" : ObjectId("536378bcc9ecd7046700001f"),
    "engagements":{
       "5407357013875b9727000111" : {
            "role" : "ADMINISTRATOR",
        },
       "5407357013875b9727000222" : {
            "role" : "DEVELOPER",
        }
    }
}

为了让多个用户对象可以与特定角色有相同的参与,我需要在这个层次结构中触发一个查询,在那里我可以获得所有在参与 属性 中有特定参与的人人物合集。

我想得到所有拥有 5407357013875b9727000222 在订婚中。

我知道可以使用 $in 运算符,但问题是我需要比较子 Json 约定的键。

我觉得就这么简单:

 db.users.find({'engagements.5407357013875b9727000222': {$exists: true}})

如果您想匹配多个参与 ID,则必须使用 $or。抱歉,这里没有 $in

但是请注意,您需要重组数据,因为无法为该数据编制索引来帮助进行具体查询。在这里,我假设您关心性能并且此查询的使用频率足以对数据库产生影响。