我的数据集如下:
{
_id: "joe",
email: "joe@joe.com",
attributes: [ "eyes" : "blue", "height" : "6'0" ]
}
是否可以通过对属性映射中的特定值进行分组来执行聚合?
I.E
{
$group : {
_id: { eyes: "$eyes" },
number: { $sum: 1 }
}
},
答案 0 :(得分:2)
您可以按照以下方式执行此操作:
db.myObject.aggregate(
{$unwind : "$attributes"},
{$group : {_id : {eyes : "$attributes.eyes"}, number : {$sum:1}}}
);