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