我有一个名为学生的集合
<globalization requestEncoding="utf-8"
responseEncoding="utf-8"
culture="en-GB"
uiCulture="en-GB" />
我正在尝试使用'和'查询,但它给了我一些不同的输出。
当我查询名称为“a”{
"_id" : ObjectId("5693b549c4fd0e0bf4782d73"),
"nameIdentity" : [
{
"name" : "a"
},
{
"name" : "b"
}
]
},
{
"_id" : ObjectId("5693b549c4fd0e0bf4782d74"),
"nameIdentity" : [
{
"name" : "a"
}
]
},
{
"_id" : ObjectId("5693b549c4fd0e0bf4782d75"),
"nameIdentity" : [
{
"name" : "a"
},
{
"name" : "b"
}
]
},
{
"_id" : ObjectId("5693b549c4fd0e0bf4782d76"),
"nameIdentity" : [
{
"name" : "b"
}
]
}
的所有nameIdentities时,我希望输出为1,因为我得到3.再次当我查询同时具有a和b {{1我期待输出为2,但我得到4.可以任何人建议我在哪里出错吗?
答案 0 :(得分:3)
使用它。
db.student.find({"nameIdentity.name":"a","nameIdentity": { $size: 1 }})
答案 1 :(得分:0)
db.student.find({"nameIdentity.name":"a"})
您正在搜索nameIdentity为&#34; a&#34;不仅仅是一个。并在你的第二个查询使用像
db.student.find({"nameIdentity.name":"a","nameIdentity.name":"b"})