你好,我正在尝试在MongoDB中查询一些嵌套文档。我正在使用Mongoose。我的文档结构如下:
[
{
"_id": "5a2ca2227c42ad67682731d4",
"description": "some descrition",
"photos": [
{
"_id": "5a2ca22b7c42ad67682731d5",
"approved": false,
"text":"good"
},
{
"_id": "5a2ca72b0a1aa173aaae07da",
"approved": true,
"text":"bad"
},
{
"_id": "5a2cabf85a41077a2f87d4e3",
"approved": false,
"text":"bad"
}
]
}
]
我想要找到只有属性文本中值为“good”的照片,这是我的查找代码:
ObjectSchema.find({
'photos': {
$elemMatch : {
'text' : 'good'
}
}
},function(err,result){
console.log(result);
});
我只希望返回与我的查询匹配的元素对象,但是当列表中的一个对象匹配时,整个照片列表都会随结果一起返回,而不仅仅是匹配文本的对象。 在这种情况下,如何查询并仅获取匹配的元素? 即仅包含具有文本中包含“good”的元素。
我使用的是nodejs + mongoose 谢谢!