MST

星途 面试题库

面试题:MongoDB中复杂条件下的聚合查询

有一个MongoDB集合,文档包含 'product'(产品名称,字符串类型)、'price'(价格,数值类型)、'quantity'(数量,数值类型)和 'date'(销售日期,日期类型)字段。请使用聚合查询计算每个月每种产品的总销售额(销售额 = 价格 * 数量),并按月份和产品名称排序,最后仅返回总销售额大于1000的记录,写出具体的聚合管道操作。
41.0万 热度难度
数据库MongoDB

知识考点

AI 面试

面试题答案

一键面试
db.collection.aggregate([
    {
        $project: {
            product: 1,
            month: { $month: "$date" },
            totalSales: { $multiply: ["$price", "$quantity"] }
        }
    },
    {
        $group: {
            _id: {
                product: "$product",
                month: "$month"
            },
            totalSales: { $sum: "$totalSales" }
        }
    },
    {
        $match: {
            totalSales: { $gt: 1000 }
        }
    },
    {
        $sort: {
            "_id.month": 1,
            "_id.product": 1
        }
    }
]);