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连接。
相关推荐
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判断字段...
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判断字段...
汇总,索引运算,游标 验证标签 插入 安装 使用go mod通过import github.com/qiniu/qmgo自动安装依赖import github.com/qiniu/qmgo 要么 使用go get github.com/qiniu/qmgo 用法 开始 import并创建新连接 import ( ...
中央处理单元 (CPU):作为计算机的大脑,负责执行指令、进行逻辑运算和数据处理。 内存:包括随机访问内存 (RAM) 和只读存储器 (ROM),用于临时或永久地存储程序和数据供CPU快速访问。 存储设备:如硬盘、固态...
中央处理单元 (CPU):作为计算机的大脑,负责执行指令、进行逻辑运算和数据处理。 内存:包括随机访问内存 (RAM) 和只读存储器 (ROM),用于临时或永久地存储程序和数据供CPU快速访问。 存储设备:如硬盘、固态...
中央处理单元 (CPU):作为计算机的大脑,负责执行指令、进行逻辑运算和数据处理。 内存:包括随机访问内存 (RAM) 和只读存储器 (ROM),用于临时或永久地存储程序和数据供CPU快速访问。 存储设备:如硬盘、固态...
基于SpringBoot + Mybatis + Thymeleaf + Redis + MongoDB + MySQL开发的 计算机硬件系统: 计算机硬件系统是构成计算机物理实体的所有部件的集合,包括核心组件以及外设。其主要组成部分包括: 中央处理单元 ...
3.3 用NumPy进行线性代数运算 57 3.3.1 用NumPy求矩阵的逆 57 3.3.2 用NumPy解线性方程组 59 3.4 用NumPy计算特征值和特征向量 61 3.5 NumPy随机数 63 3.5.1 用二项式分布进行博弈 63 3.5.2 正态分布采样 66 ...
更新日志修复所有下推中带有错误联合的连接 修复生成的sql带有类型转换导致mysql运算不正确 修复黑客路由器损坏 修复黑客路由器响应int类型可能超出数字范围Mycat的目标是以低成本将当前的独立数据库和应用程序...
MyCAT是一种开源软件,是面向企业的“大型... Mycat2 更新日志:v1.13修复所有下推中带有错误联合的连接修复生成的sql带有类型转换导致mysql运算不正确修复黑客路由器损坏修复黑客路由器响应int类型可能超出数字范围