首页 > 解决方案 > Mongodb用结果数组返回每个不同的项目

问题描述

如果我有不同州的客户集合,例如:

{
  name: "A",
  location: "Boston"
},
{
  name: "A",
  location: Los Angeles
},
{
  name: "B",
  location: Cleveland
}

我想用这样的位置数组返回每个不同的客户名称:

[
{ name: "A", location: [ "Boston", "Los Angeles" ]},
{ name: "B", location: [ "Cleveland" ] }
]

知道怎么做吗?我可以运行一个不同的并得到:

>db.customers.distinct("name");
[ "A", "B" ]

但我无法弄清楚如何将每个客户的位置放在一个数组中。我也尝试过没有运气的聚合管道。我认为 $map 或 map-reduce 可能是要走的路,但我仍然无法弄清楚。

标签: mongodbaggregation-framework

解决方案


推荐阅读