在Mongoose中,我有这样的架构
var schema= mongoose.Schema({
name:String,
age:String
likes: [{ type:String, price:String}]
});
与猫鼬一样, Model.find中的选项(条件,[字段],[选项],[回调])让我们可以选择我们需要的领域。但是在我的架构中,有一个数组属性'likes',在查询中,我只想选择一个属性类型而不是全部属性,我该如何进行此查询?
答案 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 部分中描述)。