尝试做那样的双重分组(第二组意味着更少,但它只是作为一个例子):
db.statement.aggregate({
$group: {
_id: {o:"$object", v:"$verb"},
c: {$sum: 1}
},
$group: {
_id: "$_id.o",
count: {$sum: "$c"}
}
}).result
$ object和$ verb是ObjectIds。我得到了:
{
"_id" : null,
"count" : 0
}
为什么_id为空?
答案 0 :(得分:0)
每个$ group阶段需要一个封闭的大括号 - 你的第二个$ group缺少封闭的花括号。尝试:
db.statement.aggregate(
{ $group: { _id: {o:"$object", v:"$verb"}, c: {$sum: 1} } },
{ $group: { _id: "$_id.o", count: {$sum: "$c"} } }
)