MongoDB复杂分组聚合查询
// 假设我们有一个名为"sales"的MongoDB集合,包含以下结构的文档:
// {
// item: "abc",
// quantity: 2,
// price: 10,
// date: ISODate("2020-01-01T00:00:00Z")
// }
// 我们想要按照item字段来分组,并计算每个item的总销售额和数量,同时还要按日期来进行筛选
db.sales.aggregate([
{
$match: {
date: {
$gte: ISODate("2020-01-01T00:00:00Z"),
$lt: ISODate("2020-02-01T00:00:00Z")
}
}
},
{
$group: {
_id: "$item",
totalQuantity: { $sum: "$quantity" },
totalRevenue: { $sum: { $multiply: ["$quantity", "$price"] } }
}
}
]);
这段代码首先使用$match
阶段来筛选指定日期范围内的文档,然后使用$group
阶段按照item
字段来分组,并计算每个item
的总quantity
和总销售额(totalRevenue
)。这是一个典型的MongoDB复杂分组聚合查询的例子。
评论已关闭