Database

[{"points":3,"user":"userid1"},{"points":1,"user":"userid1"},{"points":9,"user":"userid1"},{"points":10,"user":"userid1"},{"points":3,"user":"userid2"},{"points":3,"user":"userid3"},{"points":5,"user":"userid3"},]

Query

db.collection.aggregate([{"$match":{user:"userid1"}},{"$group":{"_id":"$user","points":{$sum:"$points"},history:{"$push":"$$ROOT"}}},{$project:{_id:0}}])

Result