我有一个db.collection_name.find({"account" : "test1"}, {settings : 1}).pretty();
查询:(给我设置,其中account ='test')
{
"_id" : ObjectId("49830ede4bz08bc0b495f123"),
"settings" : {
"clusterData" : {
"us-south-1" : "cluster1",
"us-east-1" : "cluster2"
},
},
我得到以下输出:
account
我现在正在寻找的是给clusterData
db.collection_name.find({'settings.clusterData.1': {$exists: true}}, {account : 1}).pretty();
在其数组中有多于1个元素。{/ p>
我只想用(2)或更多元素列出这些帐户。
我试过这个:
{{1}}
它没有返回任何结果。我的查询是否正确?还有另一种方法吗?
答案 0 :(得分:0)
它不起作用的原因是你的clusterdata
是一个对象,而不是一个数组。我建议将您的数据更改为具有两个属性的群集数组,如下所示,然后它将起作用。
{
"_id" : ObjectId("49830ede4bz08bc0b495f123"),
"settings" : {
"clusterData" : [
{
name : "cluster1",
location : "us-south-1"
},
{
name : "cluster2",
location : "us-east-1"
}
]
}
}