如何在MongoDb中查找嵌入数组中的多个元素

时间:2017-08-09 14:17:49

标签: sql arrays mongodb mongodb-query

我有一个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}}

它没有返回任何结果。我的查询是否正确?还有另一种方法吗?

1 个答案:

答案 0 :(得分:0)

它不起作用的原因是你的clusterdata是一个对象,而不是一个数组。我建议将您的数据更改为具有两个属性的群集数组,如下所示,然后它将起作用。

{
    "_id" : ObjectId("49830ede4bz08bc0b495f123"),
    "settings" : {
        "clusterData" : [
            {
                name : "cluster1",
                location : "us-south-1"
            },
            {
                name : "cluster2",
                location : "us-east-1"
            }
        ]
    }
}