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

MongoDB的连接运算

    博客分类:
  • DB
阅读更多

        来源:http://stackoverflow.com/questions/29396985/is-there-a-where-like-relation-function-when-using-pymongo

       Mongodb没有直接提供连接运算,硬编码实现有一定难度。这种情况下可以用集算器来实现多个collection的内连接、左连接、全连接、子文档连接,下面用例子来说明。

       Collection categories和rules在逻辑上是主子关系,关联字段是cat,需要进行左连接运算,取出categories的title、regex、cat字段,以及rules中相关的path字段。部分源数据如下:

 

 

        集算器代码:



 

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

 

        A2、B2:使用find函数从MongoDB中取数并排序,形成游标。其中A2是被连接的游标,需要按cat排序。集算器的find函数和mongdb的find+sort+limit函数类似,过滤条件的写法遵循mongodb规范。

 

        A3:进行连接运算,关联字段是cat,@x表示对游标进行连接,@1表示左连接,两个选项可以连用。

 

        A4:从A3取出需要的字段,_1和_2依次表示连接中的每个游标。

 

        A5:取出游标数据,结果如下:



 

        需要指出的是,如果数据太大无法装入内存,可以用函数export将A4输出到文件。

 

        A6:关闭MongoDB连接。

  • 大小: 128.6 KB
  • 大小: 26.1 KB
  • 大小: 37.8 KB
1
1
分享到:
评论

相关推荐

    cpp-MongoDB文档数据库

    对于C++开发者来说,通过研究这些源码,可以深入理解MongoDB的工作原理,学习如何利用C++与MongoDB交互,例如创建连接、执行查询、插入数据、更新记录等操作。 在实际应用中,MongoDB常用于Web应用程序、实时分析、...

    MongoDB-Mapper

    2. **配置**:设置MongoDB连接信息,包括服务器地址、端口、数据库名等,初始化MongoDB-Mapper类。 3. **模型定义**:创建PHP类来表示MongoDB的集合,这些类继承自MongoDB-Mapper提供的基类,并定义属性来映射文档的...

    mongodb-linux-x86_64-rhel70-3.4.9.tgz

    6. **强大的查询能力**:MongoDB支持丰富的查询语言,包括字段筛选、范围查询、正则表达式匹配等,同时支持丰富的数学运算和数组操作。 接下来,我们讨论如何在Linux(如RHEL 7.0)上安装MongoDB 3.4.9: 1. **...

    MongoDB数据库

    - **连接MongoDB**:使用`mongo`命令连接到MongoDB服务。例如:`mongo --port 27017`。 **2.3 配置参数** - **配置文件**:可以在MongoDB安装目录下创建一个名为“mongodb.conf”的配置文件,用于指定服务的启动...

    Memcached Redis MongoDB对比

    Redis通过客户端实现分布式读写,支持主从复制,但每次从节点连接主节点时需要整个数据集的快照,没有增量复制功能,因此在单点故障问题上处理起来较为复杂。而Memcached本身不具备数据冗余机制,但使用成熟的hash...

    MongoDB 学习文档,内附Java代码

    2. **连接MongoDB服务器**: - 使用`MongoClients`类创建一个MongoDB客户端实例: ```java MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017"); ``` 3. **获取数据库**: - 使用`get...

    mongodb-solr

    2. **配置数据源**:在`data-config.xml`中设置MongoDB的连接信息,包括URI、数据库名和集合名。 3. **定义映射**:指定MongoDB字段到Solr字段的映射关系。 4. **执行全量导入**:首次同步时,运行全量导入命令将...

    分布式下MongoDB对激光点云的存储和处理研究.pdf

    在MongoDB中,MapReduce运算允许在集群中对数据进行分布式计算,这为处理激光点云数据提供了强大支持。 从应用的角度来看,随着数字城市的建设和GIS技术在各个行业中的应用越来越广泛,激光点云数据的管理和利用变...

    深入云计算 MongoDB管理与开发实战详解pdf.part1

    3.5 客户端请求和MongoDB数据库连接 3.6 本章小结 第2篇 应用篇 第4章 查询 4.1 find简介 4.1.1 返回指定的键 4.1.2 find查询限制 4.2 条件操作符 4.2.1 $all匹配所有 4.2.2 $exists判断字段...

    mongodb安装(linux环境)

    - 可以执行数学运算、使用JavaScript标准库以及定义和调用JavaScript函数等操作。 - **常用基本命令**: - 常见的基本命令包括连接数据库、插入数据、查询数据等。 - 示例命令: ```bash # 连接到默认的admin...

    mongoDb 基本操作 整理word

    对于数据的操作,MongoDB支持简单的数学运算,如`2+4`,以及插入、查询数据。例如,`db.foo.insert({id: 2011, userName: 'hoojo', age: 24, email: "hoojo_@126.com"})`插入一个文档到foo集合,`db.foo.find()`查询...

    深入云计算 MongoDB管理与开发实战详解pdf.part2

    3.5 客户端请求和MongoDB数据库连接 3.6 本章小结 第2篇 应用篇 第4章 查询 4.1 find简介 4.1.1 返回指定的键 4.1.2 find查询限制 4.2 条件操作符 4.2.1 $all匹配所有 4.2.2 $exists判断字段...

    MongoDB_权威指南_中文版(补充完整目录导航)

    - **连接数据库**:说明如何连接到MongoDB数据库。 - **插入记录**:讲解如何在MongoDB中插入记录。 - **_id key**:介绍_id字段的概念及其重要性。 - **查询记录**:演示如何进行普通查询和条件查询,以及使用find...

    MongoDB中文教程

    - **$mod取模运算**: ```javascript db.collection.find({ key: { $mod: [2, 1] } }) // 找到key % 2 == 1 的文档 ``` - **$ne不等于**: ```javascript db.collection.find({ key: { $ne: "value" } }) ``` - ...

    Python实现批量读取图片并存入mongodb数据库的方法示例

    1. 首先,我们导入所需的库,创建MongoDB的连接,并获取数据库实例。 2. 指定图片存放的路径,并列出目录中的所有文件。 3. 遍历每个文件,使用matplotlib的image模块读取图像。 4. 可选:使用matplotlib显示读取的...

    ivy-pdi-mongodb-steps:适用于MongoDB的Pentaho数据集成插件

    - **性能优化**:由于插件是专门为MongoDB设计的,因此在处理MongoDB数据时,其性能表现通常优于通用的数据库连接方式,能够更好地利用MongoDB的特性,提高数据处理速度。 5. **应用场景**: - 实时数据分析:...

Global site tag (gtag.js) - Google Analytics