Рос*_*лко 6 mongodb mongodb-query aggregation-framework
我在 mongoDB 中有这样的模式
{
"key":"ru",
"regions":[
{
"name":"moskovskaya",
"cities":[
{
"name":"moskva"
},
{
"name":"tula"
}
]
},
{
"name":"piterskaya",
"cities":[
{
"name":"piter"
},
{
"name":"luga"
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
我有一些针对不同国家的此类架构的文档,如何从该架构的每个文档中获取所有城市的数组?
这是一个简单的查询。该distinct()方法将完美地完成工作。
db.collection.distinct("regions.cities.name")
Run Code Online (Sandbox Code Playgroud)
您生产的:
[ "luga", "moskva", "piter", "tula" ]
Run Code Online (Sandbox Code Playgroud)
运行以下聚合管道:
db.collection.aggregate([
{ "$unwind": "$regions" },
{ "$unwind": "$regions.cities" },
{
"$group": {
"_id": null,
"cities": { "$push": "$regions.cities.name" }
}
}
])
Run Code Online (Sandbox Code Playgroud)
样本输出
{
"result" : [
{
"_id" : null,
"cities" : [
"moskva",
"tula",
"piter",
"luga"
]
}
],
"ok" : 1
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6147 次 |
| 最近记录: |