MongoDB 数组中对象的聚合总和

2023-12-06

我已经看到了很多关于如何对数组中的数组中的对象的属性求和的答案,但我正在尝试对跨文档的数组中的对象的各个属性求和。例如,给定此文档结构:

{
   "id": 1,
   "stats": [
     {
       "number": 100,
       "year": 2014
     },
     {
       "number": 200,
       "year": 2015
     }
]
},


{
   "id": 2,
   "stats": [
     {
       "number": 50,
       "year": 2014
     },
     {
       "number": 75,
       "year": 2015
     }
]
}

期望的输出是:

{
   "stats": [
     {
       "number": 150,
       "year": 2014
     },
     {
       "number": 275,
       "year": 2015
     }
}

我不想总结number2014 年和 2015 年的财产,我想总结一下 2014 年这两个文件的情况。


db.test.aggregate([
   {  $unwind: "$stats" },
   {
        $group: {
            _id:"$stats.year",
            number:{$sum:"$stats.number"}
        }
    },
    { 
        $group: {
          _id: 0,  
          stats:{ $push:  {year:"$_id",number:"$number"}}
        }
    },
    {  
        $project:{stats:1,_id:0}
    } ])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MongoDB 数组中对象的聚合总和 的相关文章

随机推荐

  • 在 Visual Studio 代码扩展中捕获击键

    我希望能够在 Visual Studio 代码扩展中捕获击键 我需要知道添加或删除的新文本以及文件中更改的位置 我已经注册了一个监听器 vscode window onDidChangeTextEditorSelection handleC
  • 如何检查派生类的类型? (C++ 实例)

    假设我有一些基本抽象类和三个派生并实现其方法的不同类 是否有像 C 中那样的 类型 对象 或者换句话说 我如何获取所有这些类的实例 ModuleBase cpp class ModuleBase Module1 cpp class Modu
  • ggplot:根据条形图中的名称更改堆叠条形的顺序

    ggplot data aes x ab y Freq total fill Result geom bar stat identity theme strip text x element text size 8 angle 0 stri
  • 如何使用 rsa 从 PEM 文件解密

    我使用以下 C 代码使用 rsa 和 PEM 文件进行加密和解密 public string encrypt string elementToEncrypt string pathPrivateKey string pem System I
  • 淡化标签文本的结尾

    我有一个UILabel 我想淡化字符串的末尾 这将超出范围 对此有什么更好的解决方案 我应该计算标签的宽度 将其与字符串宽度进行比较 如果字符串宽度大于标签的宽度 我应该淡出最后两个字母吗 我到底应该怎么做 我希望这会很容易 请写出你的解决
  • 如何绘制一个只是圆形的自定义 UIView - iPhone 应用程序

    我将如何绘制一个实际上只是一个球 一个 2D 圆圈 的自定义 UIView 我会重写drawRect方法吗 有人可以告诉我绘制蓝色圆圈的代码吗 另外 可以在类本身中更改该视图的框架吗 或者我是否需要更改不同类别的框架 只是想设置一个弹跳的球
  • 性能:findIndex 与 Array.prototype.map [重复]

    这个问题在这里已经有答案了 In 2019 如果我正在处理一个长度在 15000 以上的对象数组 并且我需要按值查找对象的索引 那么以下哪种方法将是我在性能方面的最佳选择 六岁的 答案 在对象数组中 查找属性与搜索匹配的对象的索引的最快方法
  • 从Win32_PrintJob获取总页数

    Win32 PrintJob WMI 类具有许多属性 看 MSDN 上的 Win32 PrintJob 我有一个小型 NET 应用程序 用于显示打印作业并显示作业信息 The TotalPages属性给出了发送的页面数量 但该数字并未考虑用
  • 使用 MinGW-w64 在 MSYS2 上编译 BASIS

    我正在努力追随这些说明使用 MinGW w64 编译器在 MSYS2 上编译安装 BASIS CMake 构建系统和软件实现标准 但是 那ccmake 步骤失败 bash ccmake 找不到命令 我尝试通过以下方式搜索 MSYS2 软件包
  • R ggplot2 梯度图离散调色板

    在 SO 用户的帮助下 我现在可以使用以下命令绘制渐变图geom tile and scale fill gradient 现在我需要指定一个固定的调色板 我的第一次尝试是使用scale fill manual但我收到此错误消息 错误 提供
  • 如何在 Smack 中正确监听 MultiUserChat?

    我不确定如何正确监听 MultiUserChats 因为显然有两种不同的方式来监听它们 第一种方法是为每个房间添加一个 MessageListener 如下所示 MultiUserChat muc new MultiUserChat con
  • python中a = x和a=x[:]有什么区别[重复]

    这个问题在这里已经有答案了 我正在努力学习Python 有人可以帮助我理解以下两者之间的区别 a x 与 a x a x创建一个参考 a 2 x a print id a print id x 生产 39727240 39727240 所以
  • 使 log4j 控制台附加程序对不同线程使用不同颜色

    我正在追踪一些并发问题 当登录到控制台时 让每个线程的输出行以不同的颜色显示将非常有帮助 我使用的是 OS X 可以使用转换模式来输出一些控制代码来完成此操作 还是需要自定义附加程序 有人知道怎么做吗 2011 10 21 12 14 42
  • while(*p){p++;} 、while(*++p){;} 和 while(*p++){;} 有什么区别?

    是关于strcat功能 while p p and while p 两者都有效 但是 while p 不起作用 我认为第一和第三应该是相同的 但事实并非如此 我们假设p是一个字符串 while p p 1 while p 2 while p
  • 使用带 MVVM 指示灯的“X”按钮关闭窗口时进行确认

    我正在使用 WPF 和 MVVM Light 框架 我是新使用它们的 我想做以下事情 当用户单击 X 关闭按钮时 我想显示一个确认窗口 以确定他是否要退出应用程序 如果是 则应用程序关闭 如果否 则不会发生任何事情 他仍然可以正常使用该应用
  • gzip 使用 symfony2 压缩动态内容

    是否容易 可能告诉 symfony2 尊重 Web 浏览器发送的 Accept Encoding 标头以及 如果可能 gzip 压缩响应中呈现的内容 基于http developer yahoo com performance rules
  • 消息日期属性的架构名称

    我试图通过 PropertyAccessor 读取和写入消息日期 发送 接收 但无法弄清楚该属性的架构名称是什么 甚至不确定我是否正确传递了架构参数 正确的架构名称是什么 如何正确传递参数GetProperty and SetPropert
  • Powershell regex -replace 匹配的频率比应有的要高

    我有以下正则表达式 a z A Z 当我将它插入 RegEx 101 时 它似乎工作得很好 https regex101 com r vhifNL 1 但是当我将其插入 Powershell 以将匹配项替换为破折号时 它变得疯狂 JavaS
  • 使用 jquery 保存会话变量似乎不起作用

    我在存储会话时遇到问题 我正在使用的代码 save to session session compareLeftContent value alert session compareLeftContent http jsfiddle net
  • MongoDB 数组中对象的聚合总和

    我已经看到了很多关于如何对数组中的数组中的对象的属性求和的答案 但我正在尝试对跨文档的数组中的对象的各个属性求和 例如 给定此文档结构 id 1 stats number 100 year 2014 number 200 year 2015