2013-03-05 103 views
2

,我有這樣一個架構在貓鼬,如何在一個數組屬性選擇字段在貓鼬

var schema= mongoose.Schema({ 
     name:String, 
     age:String 
     likes: [{ type:String, price:String}]      
}); 

如貓鼬,所述選項Model.find(條件,[字段],[options],[callback])給了我們一個選擇我們需要的字段的選擇。然而在我的模式中,有一個數組屬性'likes',在查詢中,我只想選擇一種屬性類型而不是全部屬性,我怎樣才能使這個查詢?

回答

7

我居然發現了這件事,只是

Model.findOne({ 'name': name }, 'name age likes.type', callback); 
+3

確保您通過點擊投票箭頭下面的綠色「複選標記」將此答案標記爲正確答案。 – 2013-10-03 13:13:07

+0

這似乎不適用於Model.find查詢 – kboom 2017-01-05 20:34:32

0

對於find()你需要使用select()鏈調用,這樣的事情:

Model.find({ name: name }).select('name age likes.type').exec(function() { 

}); 

或者

Model.find({ name: name }).select({ 'name': 1, 'age': 1, 'likes.type': 1 }).exec(function() { 

}); 

更多示例這裏in Mongoose docs

不要忘記使用光標遍歷大量數據(在文檔的Streaming部分描述了它)。