YC老钢炮 2021-08-13 17:41 采纳率: 0%
浏览 23

mongodb 分组统计然后insert into其他表,怎么实现呢

mongodb   分组统计然后insert into其他表,怎么实现呢

  • 写回答

1条回答 默认 最新

  • 江湖侠客 2023-02-18 00:12
    关注

    在 MongoDB 中,可以使用聚合管道(Aggregation Pipeline)来对数据进行分组统计,然后将结果插入到另外一个表中。

    例如,假设我们有一个 sales 集合,其中包含了每个商品的销售记录,其中包括商品 ID、销售量和单价等信息。现在我们想要统计每个商品的总销售额,并将结果插入到另一个集合 sales_summary 中。

    可以使用以下的聚合管道来实现:

    db.sales.aggregate([
      {
        $group: {
          _id: "$product_id",
          total_sales: { $sum: { $multiply: ["$quantity", "$price"] } }
        }
      },
      {
        $project: {
          _id: 0,
          product_id: "$_id",
          total_sales: 1
        }
      },
      {
        $out: "sales_summary"
      }
    ])
    
    
    

    这个聚合管道包含了三个阶段:

    (1)$group 阶段:按照商品 ID 进行分组,然后计算每组的总销售额。
    (2)$project 阶段:将结果中的 _id 字段去掉,并将 product_id 和 total_sales 字段保留下来。
    (3)$out 阶段:将结果插入到 sales_summary 集合中。
    这样就可以完成分组统计并将结果插入到另一个表中了。需要注意的是,$out 阶段会将整个结果集写入到指定的集合中,如果目标集合已经存在,会先删除目标集合中的所有文档,因此需要谨慎使用。

    评论

报告相同问题?

问题事件

  • 创建了问题 8月13日

悬赏问题

  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 请求分析基于spring boot+vue的前后端分离的项目
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥200 关于#c++#的问题,请各位专家解答!网站的邀请码
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?