2012-01-13 18 views
0

私はモデルでクエリを実行したいが、クエリが一致する場合にのみ埋め込みドキュメントを返す。以下を考慮してください...マングースのモデルから埋め込み文書のみを抽出することはできますか?

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

ただし、クエリによって返されたドキュメント。

関連する問題