2015-01-21 76 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。