2012-01-13 320 views
0

我想在Model上運行查詢,但只返回查詢匹配的嵌入式文檔。考慮以下...是否可以從Mongoose中的模型中僅提取嵌入式文檔?

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  
    }); 

} 

該查找操作將返回DayModel文檔的列表。但是我真正喜歡的是單獨的EventSchemas列表。這可能嗎?

回答

3

這是不可能的,以獲取事件直接對象,但你可以限制哪些字段查詢返回這樣的:

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

您仍然需要遍歷結果,以提取從實際嵌入式領域但是,查詢返回的文檔。

相關問題