2015-01-21 70 views
0

我使用passport.js将我的用户存储到我的MongoDB中。用户对象看起来像这样对象中的查询对象

{ 
    "_id" : ObjectId("545ac4930acf4b5394cbc244"), 
    "local" : { 
     "password" : [encrypted password], 
     "email" : "[email protected]", 
     "level" : "super user", 
    }, 
    "__v" : 0 
} 

我试图显示所有谁是“超级用户”组的一部分用户。

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

+0

使用点符号:db.users.find({“local.level”:“super user”}) – joao 2015-01-21 07:26:30

+0

谢谢你的工作!我如何将答案标记为答案?另外我怎么做完全相同,而不是返回整个对象只是返回“密码”和“电子邮件”。欢呼 – sebko 2015-01-21 13:20:44

+0

我添加了一个完整的答案,包括如何只返回一些字段的信息。 – joao 2015-01-21 13:40:05

回答

0

使用点表示法是这样的:

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

只返回一些领域,find有一个可选的投影参数。对于密码和电子邮件,你会做这样的事情:

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

注:总是返回_id除非标记为投影0。