`
datamachine
  • 浏览: 157132 次
社区版块
存档分类
最新评论

MongoDB系列之合并MongoDB子文档

    博客分类:
  • DB
阅读更多

   问题来源:https://groups.google.com/forum/#!topic/mongodb-user/BpgEaRqrKsA

 

   Collection C1的部分数据如下:



 

要求按name分组,每组数据是相同的name对应的子文档中的users字段,且数据不能重复。计算结果类似:



 

   集算器代码:



 

A1:连接MongoDB,连接字格式为mongo://ip:port/db?arg=value&… 。

A2: 使用find函数从MongoDB中取数并排序,形成游标。collectoinc1,过滤条件是空,取出_id之外的所有字段,并按name排序。集算器的find函数和mongdbfind+sort+limit函数类似,过滤条件的写法遵循mongodb规范。

A3: 循环从游标读数,每次取name字段相同的一组文档。A3的作用范围是缩进的B3B5,其间可以用A3来引用循环变量。

 

 

 

B3:取出本组文档的所有users字段,如下:



 

         B4:合并本组各文档的users,并去除重复。

 

B5:B4不断地追加到B2中。B2如下:



 

B2就是本案例的计算目标。如果计算结果太多导致内存放不下,可以在B5中用函数export@jB4转为json串,再不断地追加到文本文件中。

 

A6:关闭MongoDB

  • 大小: 111.3 KB
  • 大小: 35.9 KB
  • 大小: 43.9 KB
  • 大小: 51.1 KB
  • 大小: 56.7 KB
0
0
分享到:
评论

相关推荐

    MongoDB中多表关联查询($lookup)的深入讲解

    聚合框架是MongoDB的高级查询语言,它允许我们通过转换和合并多个文档中的数据来生成新的单个文档中不存在的信息。 聚合管道操作主要包含下面几个部分: 命令 功能描述 $project 指定输出文档里的字段. $...

    mongoTemplate实现统计和分组

    附件为mongoDB之Java通过group函数来实现统计和分组的文档描述

    HealthRecords:在MongoDB上

    健康记录在MongoDB上托管的用于医疗保健行业的NoSQL数据库...joincols() 使用hospital_id加入两个集合,并在终端上显示文档,如下所示:合并文件displayhtml() 在Web浏览器上显示集合,如下所示:在谷歌浏览器上

    mongodb-gui:MongoDB 的下一个 GUI 客户端

    特此授予任何人免费获得本软件副本和相关文档文件(“软件”)的许可,不受限制地处理本软件,包括但不限于使用、复制、修改、合并的权利、发布、分发、再许可和/或出售软件的副本,并允许向其提供软件的人员这样做...

    MongoDB常用操作汇总

    指创建集合并同时向集合中插入数据, 例如:db.customer.insert({name:”jack”}) 向集合添加文档 使用命令 db.集合名称.insert({}),例如: db.user1.insert({name:”jack”,age:20}) 删除集合中的文档 使用

    node-mongo-join:mongo-join在Node.js中为MongoDB提供文档联接。 基于node-mongodb-native模块

    加入仅取决于node-mongodb-native Db客户端,希望这将使之相对容易。 性能优化。 对于toArray()来说,一种想法是在辅助集合上获取游标,并在其上调用toArray(),然后通过迭代和映射进行联接。 这将占用更多的...

    mongoid:用于MongoDB的Ruby ODM框架

    Mongoid建立在MongoDB Ruby驱动程序之上,该驱动程序具有。 兼容性 Mongoid支持并经过以下测试: MRI 2.3-2.7 JRuby 9.2 MongoDB服务器2.6-4.4 问题 请使用MongoDB JIRA中的报告Mongoid问题。 支持 Freenode IRC...

    iot_event_streaming_architecture:借助Apache Kafka和MQTT大规模进行物联网(IoT)和事件流传输

    通过Grafana实时可视化传感器指标以及体系结构组件的性能,并通过Mongo-Express可视化MongoDB中的合并文档。 二手技术 Spring Boot 2.3.3 / Apache Maven 3.6.3。 弹簧启动启动器执行器。 卡夫

    mgo:Go的MongoDB驱动程序

    Go的MongoDB驱动程序这个fork本身已经进行了一些改进,并且与原始的mgo repo合并了几个PR,这些PR正在等待审查。 更改主要针对性能改进和错误修复,尽管已添加了一些新功能。 欢迎进一步的PR(带有测试),但请保持...

    MongoSyphon:用于将数据从关系数据库传输到MongoDB的工具

    MongoSyphon是一个提取/转换/加载(ETL)引擎,专门设计用于将数据合并和转换为文档形式。 它可以从RDBMS表或MongoDB中读取,并输出到JSON,XML或直接输出到MongoDB。 它在内部执行时间和内存高效的数据联接,而基础...

    demo-node-app:使用Node,Bootstrap和MongoDB构建初学者应用

    版权所有:copyright:2020 SitePoint 特此免费授予获得该软件和相关文档文件(“软件”)副本的任何人无限制地处理软件的权利,包括但不限于使用,复制,修改,合并的权利,发布,分发,再许可和/或出售本软件的副本...

    Detached-Mapper:将整个实体图从任何DTO或词典保存到EntityFramework> = 5。 就像保存一个MongoDB文档一样

    与.Net Fiddle中的Detached一起玩! 附加匿名对象图: 导入JSON图: 分离映射器 它是什么 嗨!我正在尝试构建一个快速的,面向对象的映射器,以简化将不连贯的实体保存... NHibernate具有合并功能,但是它会合并所有内

    Fitness-Tracker:使用HTML,CSS,Javascript,Node.js,MongoDB和Mongoose构建

    特此免费授予获得该软件和相关文档文件(“软件”)副本的任何人无限制使用软件的权利,包括但不限于使用,复制,修改,合并的权利,发布,分发,再许可和/或出售本软件的副本,并允许具备软件的人员这样做,但须...

    【最新版】navicat150_premium_en.dmg navicat-premium: 15.0.14【亲测可用】最好的MySQL数据库开发工具

    Navicat Premium是一个数据库开发工具,可让您从单个应用程序同时连接到MySQL,MariaDB,MongoDB,SQL Server,Oracle,PostgreSQL和SQLite数据库。与Amazon RDS,Amazon Aurora,Amazon Redshift,Microsoft Azure...

    monary-talk:Talk for Monary,改编自

    一元 使用 NumPy 和 MongoDB ... 但是,官方 MongoDB 驱动程序并未针对将 MongoDB 文档加载到 NumPy 数组中进行优化。 输入“Monary”,它允许您使用 NumPy 数组轻松检查和操作数据。 我们将探索 Monary 如何加速您的科

    vd_test:http express mongoDB猫鼬

    样板源自: : 所有学分归原始创作者所有... 特此免费授予获得此软件和相关文档文件(“软件”)副本的任何人无限制地处理软件的权利,包括但不限于使用,复制,修改,合并的权利,发布,分发,再许可和/或出售本软件的

    gluedb

    文件网站: : 格鲁德 本文档供内部开发团队使用。 设置 设置Rails项目 ... 特此免费授予获得此软件和相关文档文件(“软件”)副本的任何人无限制地处理软件的权利,包括但不限于使用,复制,修改,合并的权利

    mongo_joins:加入Mongo

    这是一种尝试,使使用MongoDB的人员(并经常从不同集合中获取相关数据)具有一个库,用于合并来自多个集合的数据(请阅读“加入” ) MongoDB是非规范化数据库,不提供对集合执行“加入”操作的方法。 随时提出...

    jsonDB是一个python实现的基于JSON格式的非关系型内存数据库+源代码+文档说明

    * 数据库合并 * 导出数据库到外部文件 * 从外部文件导入数据库 * 关键过程性能打点(毫秒级耗时统计) * 数据库统计显示(包括数据规模\占用内存等) * 格式化打印 -------- 该资源内项目源码是个人的毕设,代码都...

    nodejs-registration-form:具有基本验证的简单注册表单

    DATABASE = mongodb:// localhost:27017 / registration-form 运行npm run watch 访问创建新的注册执照MIT许可证(MIT) 版权所有(c)2019 Favourkelvin 特此免费授予获得此软件和相关文档文件(“软件”)副本的...

Global site tag (gtag.js) - Google Analytics