我想在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列表。这可能吗?
答案 0 :(得分:5)
无法直接获取Event对象,但您可以限制查询返回的字段如下:
DayModel.find({events.typ : 'magic'}, ['events'], function(err, days) {
...
});
然而,您仍然需要遍历结果以从查询返回的文档中提取实际的嵌入字段。