我在 mongoDB 中有这样的模式

{
    "key":"ru",
    "regions":[
        {
            "name":"moskovskaya",
            "cities":[
                {
                    "name":"moskva"
                },
                {
                    "name":"tula"
                }
            ]
        },
        {
            "name":"piterskaya",
            "cities":[
                {
                    "name":"piter"
                },
                {
                    "name":"luga"
                }
            ]
        }
    ]
}

我有一些不同国家的这种模式的文件,
如何从该模式的每个文档中获取所有城市的数组?

最佳答案

运行以下聚合管道:

db.collection.aggregate([
    { "$unwind": "$regions" },
    { "$unwind": "$regions.cities" },
    {
        "$group": {
            "_id": null,
            "cities": { "$push": "$regions.cities.name" }
        }
    }
])

样本输出
{
    "result" : [
        {
            "_id" : null,
            "cities" : [
                "moskva",
                "tula",
                "piter",
                "luga"
            ]
        }
    ],
    "ok" : 1
}

关于mongodb - 如何从 mongoDB 集合中获取数组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38210121/

10-16 21:16