文档结构
{
"_id": "5a21c5dff772de0555480ef5",
"date": "2017-10-06T00:00:00.000Z",
"amount": 1,
"location": "Canada",
"__v": 0
}
我想计算每个位置的金额,结果的输出类似于:
{
"location": "Canada",
"amount": 8
}
请给我一些提示,说明如何为此构建聚合查询(或者还有其他方法可以做到这一点)。
答案 0 :(得分:0)
这听起来像是aggregation的工作。
db.collection.aggregate([{$group:{_id:"$location", amount: {$sum: "$amount"}])
如果您必须将该字段命名为“location”,请使用$project阶段将“_id”更改为“location”:
db.collection.aggregate([
{$group:{_id:"$location", amount: {$sum: "$amount"}}},
{$project: {location: "$_id", amount:1, _id:0}}
])