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

MongoDB关联订单与门店集合查询按总销售额排序的头部门店

MongoDB 聚合关联门店信息解决方案

你现有代码首先存在一个拼写错误:$sort 阶段的字段名写错成了 totoalSale,正确应为 totalSale,该错误会导致排序逻辑失效。

要关联门店集合补充详情,只需要在现有聚合流程后新增关联、结构展开、字段映射三个阶段即可,完整聚合语句如下:

db.order.aggregate([
  // 过滤有效订单
  {
    "$match": {
      status: true
    }
  },
  // 按门店分组统计总销售额
  {
    "$group": {
      "_id": "$store",
      "totalSale": {
        "$sum": "$price"
      }
    }
  },
  // 按总销售额降序排序
  {
    $sort: {
      totalSale: -1
    }
  },
  // 关联Store集合获取门店详情
  {
    $lookup: {
      from: "Store", // 关联的门店集合名,可根据实际命名调整
      localField: "_id", // 聚合结果中存储门店ID的字段
      foreignField: "id", // Store集合中对应门店ID的字段
      as: "storeInfo" // 关联结果存储的字段名
    }
  },
  // 展开关联结果($lookup默认返回数组,此处为1对1关联,直接拆分为单个对象)
  {
    $unwind: "$storeInfo"
  },
  // 调整输出字段匹配预期格式
  {
    $project: {
      _id: 0, // 不需要默认_id字段可设为0,需要保留可删除该行
      id: "$_id",
      name: "$storeInfo.name",
      status: "$storeInfo.status",
      totalSale: 1
    }
  }
  // 可选补充:如果需要排除已停用的门店(Store.status为false),可新增以下阶段
  /*,
  {
    $match: {
      status: true
    }
  }
  */
])

执行上述语句即可得到携带门店详情、按销售额排序的结果。

内容的提问来源于stack exchange,提问作者Sufail Kalathil

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 18:06:07