考虑一个名为'scheme'的集合,其中包含以下文档。如何在包含“a”的预付费数组中查询具有至少元素的所有方案?这里第一个集合满足标准,因为dataArray [0]有'a'。第二个系列没有。因此,我想查询只找到这样的集合,整个dataArray在其中一个元素中包含'a'。
{
"plan":{
"dataArray" : [
{
"a" : "x",
"b" : "y",
"c" : "z"
},
{
"b" : "x",
"c" : "z"
}
],
}
}
{
"plan":{
"dataArray" : [
{
"b" : "y",
"c" : "z"
},
{
"b" : "x",
"c" : "z"
}
],
}
}
答案 0 :(得分:2)
您可以在此处使用$exists
运算符来检查数组中是否存在属性
db.collection.find({
"plan.dataArray.a": {
$exists: true
}
})
<强>输出强>
[
{
"plan": {
"dataArray": [
{
"a": "x",
"b": "y",
"c": "z"
},
{
"b": "x",
"c": "z"
}
]
}
}
]