在mongodb的新版本中,我们可以使用$elemmatch投影运算符将查询的响应限制为数组的单个匹配元素。http://docs.mongodb.org/manual/reference/projection/elemMatch/
但在猫鼬3中似乎还不起作用,下面是一个例子:
{
_id: ObjectId(5),
items: [1,2,3,45,4,67,9,4]
}
Folder.findOne({_id: Object(5)}, {$elemMatch: {$in: [1,67,9]}})
.exec(function (err, doc) {
});
我需要得到以下医生:
{
_id: ObjectId(5),
items: [1,67,9]
}
但不幸的是,我得到的是包含所有项目的文档:
{
_id: ObjectId(5),
items: [1,2,3,45,4,67,9,4]
}
最佳答案
这里的MongoDB文档有误导性,我们会更新的。
它的意思是,您现在可以在投影中使用$elemmatch,也就是您的字段选择:
https://gist.github.com/3640687
另请参见:https://github.com/learnboost/mongoose/issues/1085
[编辑]对已发送文档的拉取请求:https://github.com/mongodb/docs/pull/185