【发布时间】:2020-07-08 09:57:48
【问题描述】:
我有一个 mongo 集合,其中包含以下格式的文档:
{
"_id" : 56345
"location" : "Watertown"
"grocery_stores" : [
{
"street": "Main"
"size": 3243
"name": "Main Street Deli"
},
{
"street": "Western"
"size": 13432
"name": "Surplus Groceries"
}
]
}
我的目标是找出所有地点的每个杂货店名称的总数。为此,我使用了带有展开和分组的聚合管道。但是,返回的结果似乎是重新组合杂货店数组中的组件,而不是单独处理它们。
查询:
db.grocery.aggregate([
{$project: {_id:1, location:1, stores:"$grocery_stores.name"}},
{$unwind: "$stores"},
{$group: {_id: "$stores"}},
{$group: {_id:"$_id", count: {$sum:1}}}
])
预期结果
{ "_id" : "Main Street Deli", "count" : 1 }
{ "_id" : "Surplus Groceries", "count" : 1 }
...
取得的成果
{ "_id" : "Main Street Deli,Surplus Groceries", "count" : 1 }
我是否遗漏了一些明显的东西?
【问题讨论】:
-
您的聚合查询返回如预期结果中所示的输出。那么,有什么问题呢?