这是它的样子-
db.log.aggregate({
$match:{ v:1, t:"trainingStep" },
$group:{ _id:{userId:'$u',questionId:'$s'}, counts:{$sum:1} },
$match:{ 'counts':{$gte:2} }
})
我已经尝试过'counts','$ counts',“$ counts” ...,但是没有一个成功!
最佳答案
aggregate
管道中的每个运算符都必须是单独的对象。同样,尽管某些版本的Shell(和驱动程序)可能允许将对象作为单独的参数传递,但正确的方法是将它们包装在单个数组中。尝试以下方法:
db.log.aggregate([
{ $match: { v: 1, t: "trainingStep" } },
{ $group: { _id: {userId: '$u', questionId: '$s'}, counts: {$sum: 1} } },
{ $match: { 'counts': {$gte: 2} } }
])
关于Mongodb聚合框架|双重比赛,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13145468/