0
我试图找到在使用mongo shell的一组字段上具有相同值的文档总和,这些是示例文档,如何使用mongo获取具有相同值的字段集合上的总和
{
"id" : "1",
"date" : ISODate("2017-04-29T00:00:00.000Z"),
"amount" : 697,
"name" : "vendor1"
}
{
"id" : "2",
"date" : ISODate("2017-04-29T00:00:00.000Z"),
"amount" : 380
"name" : "vendor2"
}
{
"id" : "2",
"date" : ISODate("2017-04-29T00:00:00.000Z"),
"amount" : 380,
"name" : "vendor2"
}
{
"id" : "3",
"date" : ISODate("2017-04-29T00:00:00.000Z"),
"amount" : 702,
"name" : "vendor3"
}
{
"id" : "3",
"date" : ISODate("2017-04-29T00:00:00.000Z"),
"amount" : 702,
"name" : "vendor3"
}
查询我曾尝试是,
db.results.aggregate([
{$group:{'_id':{name:'$name', id:'$id', date:'$date', amount:'$amount',
count:{'$sum':1}}}},
{$match:{'count':{'$gt':1}}}])
但它获取0的记录。我也想知道有多少这样的文件被发现,所以我想知道如何解决这个问题。
你把'count'错了地方。它实际上应该会产生一个错误。相反,{$ group:{'_id':{name:'$ name',id:'$ id',date:'$ date',amount:'$ amount'},count:{'$ sum': 1}}}用于$ group管道。 –
@NeilLunn thx,它现在有效。我也想知道使用聚合生成的结果文件数量,怎么做? – daiyue
如何在查询中计数? – daiyue