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

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 安装文档

    - **路由**: 负责将请求转发至正确的分片,同时处理查询合并等任务。 #### Windows 下 MongoDB 本地分布式部署 **1. 建立服务器本地路径** - **路径准备**: 为每个节点(如主节点、从节点、配置节点等)准备...

    Thinkphp使用mongodb数据库实现多条件查询方法

    MongoDB是一种NoSQL数据库,它存储数据的方式不同于传统的表格方式,而是将数据存储在BSON格式的文档中。在Thinkphp中使用MongoDB进行多条件查询时,需要对框架提供的驱动进行一定的修改以适应MongoDB的查询方式。 ...

    mongoDB实现BOM表多试图转换

    MongoDB是一种分布式文档数据库,常用于处理和存储结构化与半结构化的数据。在企业级应用中,BOM(Bill of Materials)表是至关重要的,它详细记录了产品构成的各个组件及其层次关系。BOM转换是在不同业务场景下,...

    MongoDB数据库应用说明

    MongoDB 聚合可以将多个文档合并成一个文档。 6. MongoDB 复制 MongoDB 复制可以提高数据的可用性。 7. MongoDB 分片 MongoDB 分片可以将数据分布式存储。 7.1. MongoDB 备份与恢复 MongoDB 备份可以使用 ...

    MongoDB开发使用手册

    - MongoDB采用文档模型,由数据库(Database)、集合(Collection)和文档(Document)组成。 - 每个数据库对应一个或多个文件,文件大小根据数据增长动态调整。 - 示例: - 创建两个数据库(`test`, `test1`),在两...

    高可用mongodb集群搭建

    MongoDB是一款用C++语言编写的开源文档型数据库管理系统,它结合了面向文档的数据模型和可扩展性,适用于处理大规模数据。MongoDB的特点在于其灵活的数据模式、易于水平扩展以及丰富的查询语言支持,这使得它非常...

    Scaling MongoDB.pdf

    当集合中的文档数量超过一定阈值时,MongoDB会自动将数据分割成chunks。 **4. 数据平衡** 随着新数据的添加或现有数据的变化,chunks可能会不均匀地分布在各个服务器上。为了保持负载均衡,MongoDB提供了一个自动...

    小米电商Mongodb集群文档v1.0.1

    ### 小米电商Mongodb集群文档v1.0.1 #### 重要知识点解析 **一、MongoDB 分片群集(Sharding Cluster)** **1. 分片群集概念** MongoDB 的分片(Sharding)是一种水平分区技术,用于在多个服务器之间分配集合的...

    mongodb-win32-x86-64-2012plus-4.2.0.zip

    MongoDB是一款开源、分布式、高性能的NoSQL数据库,其特点是灵活的数据模型,支持文档型、键值对、集合式等多种数据结构。MongoDB在处理大量数据时提供了高可用性和可扩展性,尤其适合处理半结构化和非结构化数据。...

    mongoDB LINUX增量备份

    - **mongoDB**:是一个高性能、开源、无模式的文档型数据库,广泛应用于Web应用、移动应用、实时分析等领域。 - **增量备份**:备份只包含自上次备份以来发生变化的数据,减少备份时间和存储需求。 - **LINUX版**...

    MongoDB MapReduce分享.ppt

    MongoDB 是一个流行的开源、高性能、无模式的文档型数据库,尤其适合处理大规模数据。MapReduce 是 MongoDB 提供的一种分布式计算框架,用于处理和聚合大数据。在这个“MongoDB MapReduce 分享”中,我们将深入探讨 ...

    mongodb-win32-x86_64-2008plus-ssl-3.6.23.zip

    MongoDB是一款开源、高性能、无模式的分布式文档型数据库,被广泛应用于Web应用、内容管理系统、数据存储和分析等多个领域。这款"mongodb-win32-x86_64-2008plus-ssl-3.6.23.zip"是专为Windows 64位操作系统设计的...

    配置mongodb分片群集(sharding cluster)

    MongoDB是一种流行的开源文档数据库系统,以其高性能、高可用性和灵活的数据模型而受到广大开发者喜爱。在处理大数据或高并发场景时,MongoDB提供了分片(Sharding)功能,以实现水平扩展,满足大规模数据存储和处理...

    java操作mongoDB实现文件上传预览打包下载

    在Java编程环境中,MongoDB是一个广泛使用的文档型数据库,它以JSON格式存储数据,提供了灵活的数据模型和高性能的处理能力。对于"java操作mongoDB实现文件上传预览打包下载"这个主题,我们将深入探讨如何利用Java与...

    mongodb使用大全

    它支持一系列复杂的操作,如分组、排序、投影、合并等。 复制: MongoDB支持复制集,它是一种数据冗余的解决方案,可以保证数据的高可用性。复制集通过创建多个副本,实现数据的同步更新,从而提供读写分离、故障...

    mongodb-src-r2.2.2.tar.gz

    MongoDB 是一个流行的开源、分布式文档数据库系统,用于构建高性能、高可用性和可扩展性的现代应用程序。MongoDB 的源代码存档 "mongodb-src-r2.2.2.tar.gz" 提供了开发人员深入理解其内部工作原理和进行自定义修改...

    Springmvc+hibernate+mysql+mongodb

    Spring MVC、Hibernate、MySQL和MongoDB是Web开发中常见的四大技术栈,它们分别在应用程序的模型-视图-控制器(MVC)架构、对象关系映射(ORM)、关系型数据库和文档型数据库方面发挥着重要作用。 Spring MVC是...

    mongodb-win32-x86_64-2012plus-4.2.7.zip

    MongoDB是一款开源、高性能、无模式的分布式文档型数据库,被广泛应用于Web应用、内容管理系统、数据存储和分析等场景。这个压缩包“mongodb-win32-x86_64-2012plus-4.2.7.zip”包含了MongoDB针对Windows 64位操作...

Global site tag (gtag.js) - Google Analytics