You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MongoDB Charts中生成月度销售差值对比图表?

在MongoDB Charts中创建当月与上月销售差值图表

步骤1:编写聚合管道计算每月销量及差值

先对SalesHeaders集合做聚合处理,统计每月销售数量后关联上月数据计算差值。假设集合包含销售日期字段saleDate、门店字段storeId,可使用以下聚合管道:

[
  // 按月份+门店分组,统计当月销售笔数
  {
    $group: {
      _id: {
        year: { $year: "$saleDate" },
        month: { $month: "$saleDate" },
        storeId: "$storeId"
      },
      currentMonthSales: { $sum: 1 }
    }
  },
  // 按门店、时间排序,为窗口函数做准备
  {
    $sort: { "_id.storeId": 1, "_id.year": 1, "_id.month": 1 }
  },
  // 用窗口函数获取上月销量
  {
    $setWindowFields: {
      partitionBy: "$_id.storeId",
      sortBy: { "_id.year": 1, "_id.month": 1 },
      output: {
        previousMonthSales: {
          $lag: "$currentMonthSales",
          offset: 1
        }
      }
    }
  },
  // 计算当月与上月销量差值,生成月份标签
  {
    $addFields: {
      salesDifference: { $subtract: ["$currentMonthSales", "$previousMonthSales"] },
      monthLabel: {
        $dateToString: {
          format: "%Y-%m",
          date: { $dateFromParts: { year: "$_id.year", month: "$_id.month" } }
        }
      }
    }
  },
  // 过滤无上月数据的月份(如年度首月)
  {
    $match: { previousMonthSales: { $ne: null } }
  }
]

步骤2:在MongoDB Charts中创建数据集

  1. 打开MongoDB Charts进入目标项目,点击**"Add Data Source"**,选择对应集群与SalesHeaders集合。
  2. 进入**"Create Dataset",选择"Aggregation Pipeline",粘贴上述聚合管道,点击"Run Pipeline"**验证数据后保存数据集。

步骤3:创建差值图表

  1. 点击**"Create Chart"**,选择刚创建的数据集。
  2. 选择图表类型:推荐用柱状图(直观展示正负差值)或折线图(查看差值趋势)。
  3. 配置字段:
    • X轴:选择monthLabel(展示月份)
    • Y轴:选择salesDifference(展示差值)
    • 若需按门店区分,将storeId拖至**"Series"或"Color"**字段,实现多门店对比。
  4. 调整样式:设置Y轴显示正负值、添加数据标签展示具体差值、修改图表标题为"当月与上月销售数量差值"。

注意事项

  • 若集合中日期、门店字段名称不同,需替换为实际字段名。
  • 如需按其他维度(如区域、品类)分组,在$group的_id中添加对应字段即可。

内容的提问来源于stack exchange,提问作者André Ferreira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 00:22:17