对象内的查询对象

Query object within an object

我正在使用 passport.js 将我的用户存储到我的 mongodb 中。用户对象如下所示

{
   "_id" : ObjectId("545ac4930acf4b5394cbc244"),
   "local" : {
       "password" : [encrypted password],
       "email" : "john@domain.com",
       "level" : "super user",
   },
   "__v" : 0
}

我正在尝试显示属于 "super user" 组的所有用户。

我发现这很难,因为我的数据位于对象中的两个级别。

像这样使用点符号:

db.users.find({"local.level" : "super user"})

到return只有一些字段,find有一个可选的投影参数。对于密码和电子邮件,您可以执行以下操作:

db.users.find({"local.level" : "super user"}, {"local.password":1, "local.email":1, "_id":0})

注意:除非在投影中标记为 0,否则 _id 总是 returned。