如何使用mongo获取具有相同值的一组字段的总和

时间:2017-09-15 10:57:44

标签: mongodb aggregation mongo-shell

我试图使用mongo shell在一组字段中查找具有相同值的文档总和,这些是示例文档,

db.results.aggregate([
{$group:{'_id':{name:'$name', id:'$id', date:'$date', amount:'$amount', 
count:{'$sum':1}}}},
{$match:{'count':{'$gt':1}}}])

我试过的查询是,

{{1}}

但它获得了0条记录。我也想知道有多少这样的文件被发现,所以我想知道如何解决这个问题。

1 个答案:

答案 0 :(得分:1)

你可以使用它。

db.results.aggregate([
{ $group:{'_id': {name:'$name', id:'$id', date:'$date', amount:'$amount'}
                 , count: {$sum: 1} } }
])

结果:

{ "_id" : { "name" : "vendor3", "id" : "3", "date" : ISODate("2017-04-29T00:00:00Z"), "amount" : 702 }, "count" : 2 }
{ "_id" : { "name" : "vendor2", "id" : "2", "date" : ISODate("2017-04-29T00:00:00Z"), "amount" : 380 }, "count" : 2 }
{ "_id" : { "name" : "vendor1", "id" : "1", "date" : ISODate("2017-04-29T00:00:00Z"), "amount" : 697 }, "count" : 1 }