要根据MongoDB中的值来统计字段,你可以使用MongoDB的聚合框架
假设你有一个名为orders
的集合,其中包含以下文档:
{
"_id": 1,
"customer_id": 1,
"amount": 100,
"status": "completed"
},
{
"_id": 2,
"customer_id": 1,
"amount": 200,
"status": "completed"
},
{
"_id": 3,
"customer_id": 2,
"amount": 300,
"status": "pending"
}
如果你想统计每个客户的已完成订单总额,你可以使用以下聚合查询:
db.orders.aggregate([
{
$match: {
"status": "completed"
}
},
{
$group: {
_id: "$customer_id",
totalAmount: { $sum: "$amount" }
}
}
])
这个查询将首先通过$match
阶段过滤出状态为completed
的订单,然后通过$group
阶段按customer_id
分组,并计算每个组的总金额。
查询结果将类似于以下结构:
{
"_id": 1,
"totalAmount": 300
}
这个结果表示客户ID为1的客户已完成订单的总额为300。
如果你想对所有客户(不仅仅是已完成订单的客户)进行统计,你可以修改$match
阶段,如下所示:
db.orders.aggregate([
{
$group: {
_id: "$customer_id",
totalAmount: { $sum: "$amount" }
}
}
])
这将返回所有客户的订单总额。
领取专属 10元无门槛券
手把手带您无忧上云