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

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 基本操作 整理word

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

Global site tag (gtag.js) - Google Analytics