当前位置: 首页 > 编程笔记 >

如何在MongoDB中汇总总和以获得总数?

齐夕
2023-03-14
本文向大家介绍如何在MongoDB中汇总总和以获得总数?,包括了如何在MongoDB中汇总总和以获得总数?的使用技巧和注意事项,需要的朋友参考一下

要在MongoDB中汇总总和以获取总计数,可以使用$sum运算符。要了解上述概念,让我们使用文档创建一个集合-

> db.aggregateSumDemo.insertOne({"CustomerName":"Larry","Amount":140});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8baa0680f10143d8431e18")
}
> db.aggregateSumDemo.insertOne({"CustomerName":"Mike","Amount":160});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8baa1380f10143d8431e19")
}
> db.aggregateSumDemo.insertOne({"CustomerName":"Sam","Amount":300});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8baa1c80f10143d8431e1a")
}
> db.aggregateSumDemo.insertOne({"CustomerName":"David","Amount":500});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8baa2580f10143d8431e1b")
}

find()method的帮助下显示集合中的所有文档。查询如下-

> db.aggregateSumDemo.find().pretty();

以下是输出-

{
   "_id" : ObjectId("5c8baa0680f10143d8431e18"),
   "CustomerName" : "Larry",
   "Amount" : 140
}
{
   "_id" : ObjectId("5c8baa1380f10143d8431e19"),
   "CustomerName" : "Mike",
   "Amount" : 160
}
{
   "_id" : ObjectId("5c8baa1c80f10143d8431e1a"),
   "CustomerName" : "Sam",
   "Amount" : 300
}
{
   "_id" : ObjectId("5c8baa2580f10143d8431e1b"),
   "CustomerName" : "David",
   "Amount" : 500
}

这是获取总数的查询。

情况1-查询如下-

> db.aggregateSumDemo.aggregate([ {
   ... $group: {
      ... _id: null,
      ... "TotalCount": {
         ... $sum:1
      ... }
   ... }
... } ] );

以下是输出-

{ "_id" : null, "TotalCount" : 4 }

这是在MongoDB中汇总总和以获取总和的查询。

情况2-查询如下-

> db.aggregateSumDemo.aggregate([ {
   ... $group: {
      ... _id: null,
      ... "TotalAmount": {
         ... $sum: "$Amount"
      ... }
   ... }
... } ] );

以下是输出-

{ "_id" : null, "TotalAmount" : 1100 }
 类似资料:
  • 我正在使用这个数据帧: 我想通过<code>Name</code>和<code>Fruit</code〕来聚合,以获得每个<code>名称</code>的<code>Fruit<-code>总数。例如: 我尝试按和分组,但如何获取的总数?

  • 问题内容: 如何在Swift中汇总CGFloat?我已经尝试过了,但是只能在iPad Air和iPhone 5S上使用。 在另一台模拟设备上运行时,出现错误提示 问题答案: 更新 :Apple现在已经定义了一些CGFloat特定版本的常用功能,例如: …专门处理32/64位的差异。如果仅使用CGFloat参数,则它现在应在所有体系结构上都适用。 我的原始答案: 我认为这太可怕了,但是谁能想到更好的

  • 问题内容: 我需要编写一个查询,该查询从表中返回汇总和非汇总数据。 下面的示例应有助于阐明我要执行的操作。我有以下(简化)表: 为了便于讨论,假设每个学生都属于一个课程组。我想编写一个查询,该查询将返回如下结果集: student.name,student.weight,weight_apgaw,weight_apgh 在哪里: weight_apgaw: 是单个学生的体重,表示为他/她所属课程组

  • 我试图按年度汇总我的结果,但我不明白为什么它不起作用。 数据看起来像... 和我的查询代码: 和结果: 如何按年度或月度汇总结果?

  • 问题内容: 我每天要进行几个实验,在Elasticsearch中存储实验的 错误 和 布尔 值(如果结果正确)。现在,我想在图形中显示结果(使用highchart js)。我使用这样的汇总查询来接收每天的汇总错误,包括标准差: 我面临的问题是,我无法像从数据库中获得双重错误一样检索布尔值。当我只是将字段名称更改为 我收到此错误消息: 但是,可以将所有布尔值合计为true,将true设置为1,将fa

  • 关于如何利用函数汇总表的数据。 聚集函数 确定表中的行数 获得表中行组的和 找出表列(所有行,特定行)的最大,最小,平均值。 上面的例子需要对表中的数据汇总,而不是实际数据本身,所以可以不需要返回时间数据,浪费资源 聚集函数(aggregate function) 运行在行组上,计算和返回单个值的函数。 AVG(): 返回所有列或者某个列平均值。 计算表中的行数并计算特定列值之和,求得改列的平均值