如果我有一组处于不同状态的客户,例如:
{
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可能是可行的方法,但我仍然无法弄清楚。