在mongoose中,如何选择数组属性中的字段

时间:2013-03-05 17:12:02

标签: mongoose

在Mongoose中,我有这样的架构

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

与猫鼬一样, Model.find中的选项(条件,[字段],[选项],[回调])让我们可以选择我们需要的领域。但是在我的架构中,有一个数组属性'likes',在查询中,我只想选择一个属性类型而不是全部属性,我该如何进行此查询?

2 个答案:

答案 0 :(得分:10)

我实际上是通过

找到了它
Model.findOne({ 'name': name }, 'name age likes.type', callback);

答案 1 :(得分: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 部分中描述)。