如何在mongoDB中进行此查询?
{
_id:“*******”
内容:“”,
评论:[
{
key1:“1”,
key2:“2”
},
{
key1:“sdfs”,
key2:“sdfasdf”
}
}
例如,我使用如下数据。我想在条件{key1:1,key2:2}中查询注释中的项目,而不是返回整个记录。
我该怎么办?
答案 0 :(得分:3)
你可以试试这个
{ "comments.key1" : "1", "comments.key2" : "sdfasdf" }
只有在数组元素中必须匹配多个字段时才需要使用它。
答案 1 :(得分:1)
您可以使用$elemMatch
查询两个字段上的子文档:
{ comments: { $elemMatch : { key1: 1, key2: 2 } } }
You cannot return just the selected subdocument。你会得到所有这些。因此,您必须在客户端进行过滤。 (当然,您可以排除主文档的所有其他字段。)