是否可以从Mongoose中的模型中仅提取嵌入的文档?

时间:2012-01-13 23:20:05

标签: mongodb mongoose

我想在Model上运行查询,但只返回查询匹配的嵌入式文档。请考虑以下内容......

var EventSchema = new mongoose.Schema({
    typ : { type: String },
    meta : { type: String }
});

var DaySchema = new mongoose.Schema({
    uid: mongoose.Schema.ObjectId,
    events: [EventSchema],

    dateR: { type: Date, 'default': Date.now }

});

function getem() {
    DayModel.find({events.typ : 'magic'}, function(err, days) {
         // magic. ideally this would return a list of events rather then days    
    });

}

该find操作将返回DayModel文档列表。但我真正喜欢的只是EventSchemas列表。这可能吗?

1 个答案:

答案 0 :(得分:5)

无法直接获取Event对象,但您可以限制查询返回的字段如下:

DayModel.find({events.typ : 'magic'}, ['events'], function(err, days) {
   ...
});

然而,您仍然需要遍历结果以从查询返回的文档中提取实际的嵌入字段。