Mongodb 是否可以聚合对象?

2024-02-07

我正在尝试汇总本文档中的数据包总数。

{
    "_id" : ObjectId("51a6cd102769c63e65061bda"),
    "capture" : "1369885967",
    "packets" : {
        "0" : "595",
        "1" : "596",
        "2" : "595",
        "3" : "595",
        ...
    }
}

我能得到的最接近的是

db.collection.aggregate({ $match: { capture : "1369885967" } }, {$group: { _id:null, sum: {$sum:"$packets"}}});

然而它返回 sum 0,这显然是错误的。

{ "result" : [ { "_id" : null, "sum" : 0 } ], "ok" : 1 }

如何获得所有数据包的总和?


由于您的值位于对象而不是数组中,因此您需要使用 mapReduce。

// Emit the values as integers

var mapFunction = 
  function() {
    for (key in this.packets) {
      emit(null, parseInt(this.packets[key]));
    }
  }

// Reduce to a simple sum

var reduceFunction = 
  function(key, values) {
    return Array.sum(values);
  }

> db.collection.mapReduce(mapFunction, reduceFunction, {out: {inline:1}})
{
    "results" : [
        {
            "_id" : null,
            "value" : 2381
        }
    ],
    "ok" : 1,
}

如果可能的话,您应该将值作为数字类型的数组发出,因为这为您提供了更多选项(即聚合)并且(除非数据集很大)可能会带来性能优势。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mongodb 是否可以聚合对象? 的相关文章

  • Spring Data - MongoDB 索引 DBRef

    我正在使用 spring data mongodb 1 2 0 RELEASE 我有两个类 A 和 B 其中 B 引用了 A 并且用 DBRef 进行了注释 Class A Document collection a public clas
  • 无法解构“undefined”或“null”的属性“user”

    使用 redux 检索用户信息时出错 我想从数据库获取用户信息 姓名 密码和头像地址 然后对其进行编辑 我正在使用nodejs express react redux 和jwt Actions user js import axios fr
  • 为什么 Casbah / Java MongoDB 驱动程序最终会出现 java.lang.IllegalArgumentException?

    我使用时看到一个奇怪的问题casbah java driver 当驱动程序尝试从 mongo 创建响应时 我不断遇到以下异常 Oct 16 2012 10 45 07 AM com mongodb DBTCPConnector MyPort
  • Pymongo 中的全文搜索

    即将推出的 MongoDB 2 4 支持全文检索 http docs mongodb org manual release notes 2 4 text indexes 我们在 mongo shell 中使用命令来执行此操作 例如 db p
  • mongoid 中的嵌入文档与哈希数据类型

    我找不到任何讨论此问题的博客文章或文档 它们 嵌入式文档和哈希数据类型 非常相似 彼此相比有何好处或限制 考虑我的架构设计 class HistoryTracker include Mongoid Document include Mong
  • 为任何更新查询增加 Mongoose 文档版本的简单方法?

    我想开始利用 Mongooses 文档版本控制 v key 我在实际增加版本值时遇到了问题 然后我发现您必须添加this increment 执行查询时 有没有办法自动递增 目前 我只是将其添加到pre用于更新类型查询的中间件 module
  • 使用 PyMongo 将 MongoDB find() 返回序列化为非匿名 JSON 数组

    我的 Python 代码查询 MongoDB 并返回an array以下对象 u attribute u value u id ObjectId 534776c66e5987041f6154bd 我想要实现的是返回以下 JSON mycol
  • ElasticSearch 和 PHP 中的多个字段搜索

    我正在使用最新版本弹性搜索 PHP https github com elasticsearch elasticsearch php以及最新版本的 MongoDB 和 ElasticSearch 我需要对可以包含一个或多个值的多个字段进行搜
  • 错误:键 $conditionalHandlers 不得以 '$' mongodb 开头

    我对 mongodb 特别是 Node js 的 mongoose 包有疑问 我有以下架构 var Schema mongoose Schema var location new Schema nomville type String re
  • Mongoose 4.4.12 中 Schema 方法范围内的“this”为空 {}

    当在 Schema 方法内记录到控制台时 对象 this 为 这发生在一天前 我一直在阅读教程和其他堆栈溢出问题 但不幸的是我没有找到原因的解决方案 这是我的模型 var mongoose require mongoose var Sche
  • 清理 MongoDB 的输入

    我正在为 MongoDB 数据库程序编写 REST 接口 并尝试实现搜索功能 我想公开整个 MongoDB 接口 我确实有两个问题 但它们是相关的 所以我将它们放在一篇文章中 使用 Python json 模块解码不受信任的 JSON 是否
  • mongoengine 操作的原子性如何

    我正在尝试在对象的状态之间转换 如下所示 User objects id user id state STATE WAITING update one set state STATE FINISHED The question是 是否存在这
  • 将 Django +1.10 与 MongoDB 连接

    在过去的几个月里 有人为 MongoDB 更换了 Django 1 10 中的默认数据库引擎吗 我在谷歌上得到的所有信息都是六四年前的 最常见的结果包括mongodb 引擎这需要Django nonrel 来自 Django 1 5 的一个
  • MongoDB 中两个集合之间的 Diff()

    我做过研究 如果这是一个重复的问题 我很抱歉 但其他问题的解决方案并不适合我 因此 我提出了一个新问题 使用 Javascript 比较两个集合的最佳方法是什么 我有数千个这样的 Mongo 文档格式的标头 url google com h
  • MongoDB insertMany 并跳过重复项

    我试图insertMany https docs mongodb com manual reference method db collection insertMany 项目进入我的 Mongo 数据库 但我想跳过重复的 ID 我在用着N
  • 如何在 Spring MongoDB 聚合上投影 DBRef?

    我在 MongoDB shell 中完成了以下聚合 以获取每个用户每种类型的警报数量 db getCollection alerts aggregate unwind son group id son son level level cou
  • 国外收藏的查找和排序

    所以我有一个收藏users 并且此集合中的每个文档以及其他属性都有另一个集合中文档的 id 数组 workouts 集合中的每个文档workouts有一个名为date 这就是我想要得到的 对于特定用户 我想要获取属于该用户的锻炼的 work
  • 如何从 JSON 创建 Mongoose 模式

    我是 mongodb nodejs 和 mongooseJS 的新手 最近 我一直在尝试为我的 JSON 创建猫鼬模式 endpoints a z poi location name a latitude 10 1075702 longit
  • MongoDB 查询 IN 对象数组

    我在检索两个集合之间的信息时遇到问题 第一个集合存储员工信息 id ObjectId 4f9643967f8b9a3f0a00005a birth date 1963 09 09 departments departments id Obj
  • 由于类型错误无法创建索引:格式字符串参数不足

    我正在尝试使用 pymongo 创建索引 但因错误而失败 File D Users Dims Design EnergentGroup Python GIS Developer worker Approach03 sentinel mong

随机推荐

  • 为泛型接口配置装饰器,并在简单注入器中将所有实例注入到具有非泛型接口参数的构造函数

    我一直在使用与所描述的非常相似的模式在这篇优秀的文章中 http www cuttingedge it blogs steven pivot entry php id 91将命令和查询作为对象 我还使用 SimpleInjector 作为
  • 当应用程序关闭并重新打开时 Android 崩溃

    我有一个非常简单的 Android 应用程序 只显示一个空白的白色屏幕 当我按 主页 按钮关闭应用程序 然后尝试再次打开该应用程序时 它崩溃了 并且我收到 强制关闭 按钮 在 Eclipse 中 我收到此错误 ActivityManager
  • 正则表达式匹配顺序

    我的问题很简单 假设我想匹配单词中的元音 但我想按照出现的特定顺序来匹配它们 例如 a e i o u 我该怎么做呢 所以你正在寻找a后面跟着一些字符 然后e后面跟着一些字符 等等 换句话说 a接下来是不是的东西e then e 然后是那些
  • 从 git 存储库中删除丢失的 LFS 对象

    我的 git 存储库 中缺少一堆 LFS 对象 无论是在客户端还是在服务器上 我知道那些物品丢失了 没关系 不幸的是这意味着git lfs fetch all甚至git lfs push all origin将失败 我想从存储库中清除 损坏
  • 迭代对数幂

    我最近搞砸了一次采访 使用 collabedit 的电话屏幕 这是问题 编写一个交互式 O lg n 算法来求 x y 的幂 x 是双精度型 y gt 0 是整数 我首先进行了递归分而治之 并尝试将其转换为迭代 但我不能 S 有没有一种方法
  • Rust 使用 vs mod?

    我正在努力解决这些问题 use宣言 A 使用声明创建一个或多个与其他路径同义的本地名称绑定 通常 一个use声明用于缩短引用模块项所需的路径 这些声明可能出现在模块和块中 通常位于顶部 And mod item A 模块项是一个模块 用大括
  • 如何在 Xcode (Swift) 中添加自动完成注释?

    如何将文本添加到自动完成功能 如下所示 告诉元素激活自身 部分 这就是我所拥有的 但是 这是一个测试 部分不会出现在自动完成中 请不要链接到其他介绍如何编写评论的帖子 以便它们会显示在通过 Option Click 弹出的窗口中 我很清楚如
  • 多租户身份服务器 4

    我正在尝试实现一个 IdentityServer 来处理多租户应用程序的 SSO 我们的系统将只有一个 IdentityServer4 实例来处理多租户客户端的身份验证 在客户端 我正在使用acr value传递租户 ID Startup
  • 如何在package.json中添加多个NODE_PATH?

    如何在package json中添加多个NODE PATH 我想要有这些多条路径 NODE PATH NODE PATH modules or NODE PATH lib NODE PATH modules 包 json name my a
  • 将 pandas 数据框列转换为带有源和目标的 networkx 图

    我在 pandas 中有一个 DataFrame 其中包含有关人员及时位置的信息 大约有 300 多万行 这是示例 其中每个名称都分配给一个唯一的index by group by并排序Name and Year import pandas
  • htaccess 通过查询字符串阻止请求

    有没有办法阻止具有特定查询字符串的所有请求 我应该阻止所有包含 userid 1234 或 userid 1234 的请求 例如 directory page php userid 1234 var2 abc var3 directory
  • Gradle 任务差异

    下面两个代码片段有什么区别 First task copyFiles type Copy lt lt from folder from into dest folder Second task copyFiles type Copy fro
  • 如何通过EC2 SSH隧道从本地JAVA程序连接到RDS

    我正在尝试通过 SSH 隧道从本地 JAVA 程序连接到 RDS 数据库到 EC2 实例 以进行调试 我正在尝试在 EC2 实例中建立 SSH 隧道 然后将端口转发到 RDS 数据库 这是我的代码 final int localPort 9
  • Webgl 没有渲染我的圆圈

    我正在尝试学习如何使用 Webgl 并且已经学会了如何绘制三角形 正方形和直线 我在 webgl 中创建圈子时遇到问题 var InitDemo function var canvas document getElementById cir
  • 如何设置绑定项目的ContextMenu?

    我正在努力实现以下目标
  • C# RichTextBox选择问题

    我的应用程序上有一个 RichTextBox 控件 这是我的问题 当应用程序运行时 如果我开始用鼠标选择单词内的某些字符并继续在其外部选择 则选择会自动包含我开始选择的整个单词以及我想从中选择一部分的任何其他单词 ms word ish 如
  • IMPORTXML 到具有自动更新功能的 Google Apps 脚本中 [重复]

    这个问题在这里已经有答案了 我正在尝试让 Google 表格应用程序脚本适用于我正在使用的 IMPORTXML A1 importxml http www nfl com liveupdate scorestrip ss xml q A2
  • 获取矩阵元素的邻居

    我有一个矩阵 对于每个元素 我想获取其周围元素的索引 所有这些结果必须按以下方式存储到矩阵中 矩阵的每一行对应于一个矩阵元素 并且该矩阵的每一列包含 s 个邻居索引 例如 对于 4x4 矩阵 我们将得到一个 16x8 结果数组 某些矩阵元素
  • Ms Access vba 打开另一个数据库中表的数据表视图

    该语句将打开当前数据库中指定表的数据表视图 DoCmd OpenTable sTablename acViewNormal 有没有办法让另一个数据库中的表达到相同的结果 我有一个表单 可以在其中选择 Access 数据库 然后下拉菜单中会填
  • Mongodb 是否可以聚合对象?

    我正在尝试汇总本文档中的数据包总数 id ObjectId 51a6cd102769c63e65061bda capture 1369885967 packets 0 595 1 596 2 595 3 595 我能得到的最接近的是 db