2017-06-15 71 views
-1
{ 
    "_id" : ObjectId("593fbefd0b0cbbe593cd89d3"), 
    "coins" : "220", 
    "reasonId" : ObjectId("593500980b0cbbe593cd722c"), 
    "empId" : ObjectId("592eb2e224da300ca89b05d5"), 
    "clubId" : ObjectId("592d6bea7ab7f62d58001329") 
} 

{ 
    "_id" : ObjectId("59413b170b0cbbe593cd8b46"), 
    "coins" : "220", 
    "reasonId" : ObjectId("593500980b0cbbe593cd722c"), 
    "empId" : ObjectId("592eb2e224da300ca89b05d5"), 
    "clubId" : ObjectId("592d6bea7ab7f62d58001329") 
} 

{ 
    "_id" : ObjectId("593fbefd0b0cbbe593cd89d5"), 
    "reasonId" : ObjectId("5934ffb80b0cbbe593cd722a"), 
    "empId" : ObjectId("5912e5747f83352face7e431"), 
    "coins" : "100", 
    "clubId" : ObjectId("592d6bea7ab7f62d58001329") 
} 

我想根據clubId來計算單個empId的硬幣總和。員工的硬幣應該只基於一個俱樂部,如何對此進行聚合?

+1

當字段是「字符串」,你會發現,隨着聚合框架很難不號碼。我建議你修復你的數據。然後至少做一些基礎研究。這並不難。 –

+0

你想獲取'clubId = something'的所有記錄,然後求和'coins'字段?首先,使'硬幣'一個整數不是一個字符串,以節省自己不必要的痛苦。然後,向我們展示你到目前爲止所嘗試的內容。這是一個非常簡單的問題,[基本谷歌搜索](https://stackoverflow.com/posts/44549077/edit)可能會爲你解答。 –

回答

0

讓我們假設你的colleciton是「僱員」,但轉換硬幣字符串第一

db.employee.aggregate(
{ 
    $match:{ 
     "empId" : ObjectId("5912e5747f83352face7e431") 
    } 
}, 
{ 
    $group:{ 
     _id: "$clubId", 
     sumCoins : {$sum: "$coins"} 
    } 
} 
) 
相關問題