MongoDb 关联查询
刚接触MongoDB,有个需求是进行两张表的关联查询的。
需求:把订单表(PrepurchaseOrder)和用户表(User)通过邮箱(emaiL)进行关联,查找订单用户对应的钱包地址。
订单表结构如下:
{
"email" : "haifeng@163.com",
"productName" : "中型2GPU矿机",
}
用户表结构如下:
{
"email" : "15077550@qq.com",
"neoWalletAddress" : "aabbccdd",
}
最终的sql如下:
db['PrepurchaseOrder'].aggregate([{
$lookup:{
from:"User",
localField:"email",
foreignField: "email",
as: "Users"
}},
{ $unwind: "$Users" },
{ $match : { "Users.neoWalletAddress" : {$exists:true} }},
{ $project: { productName: 1,count:1,email:1,"Users.neoWalletAddress":1}},
])
sql解析:
1.from:"User" 表示从User表中去查
2.localField:"email",表示订单表(PrepurchaseOrder)中的邮箱。
3.foreignField: "email",表示用户表(User)中的邮箱。
4.as: "Users",表示把从User表中查询出的内容作为一个Users变量,附加到订单表(PrepurchaseOrder)
5.{ $unwind: "$Users" },表示把从User表中查询的数据字段,作为订单表(PrepurchaseOrder)中的字段
6. $match,表示进行值的匹配,匹配User表中钱包地址不为null的。
7. $project,表示指定显示哪些字段。
最终导出的数据如下图:
MongoDb 关联查询相关推荐
- mongodb关联查询
文章目录 1.mongodb关联查询基本操作 2.关联字段类型不一致时 3.其他 4.DBRef在Lookup中的使用 5.从ISODate中获取年月日等 1.mongodb关联查询基本操作 mong ...
- 使用MongoDB关联查询
使用MongoDB关联查询 使用MongoDB关联查询 Mongo shell 关联查询 $lookup 简单教程 $lookup 示例 使用$lookup执行单个相等连接 使用$lookup与一个数 ...
- mongodb关联查询 和spring data mongodb
GITHUB:https://github.com/peterowang/Springdata-mongo 使用DBRefs DBRefs中有三个字段 - $ref - 此字段指定引用文档的集合 $i ...
- NoSQLBooster for MongoDB 中跨库关联查询
使用 MongoDB 是我们常常会遇到一些特殊的需求需要跨库关联查询,比如订单明细缺商品重量需要补商品重量,而商品重量数据又在商品库中,这事就需要跨库关联操作,示例代码如下: // 使用 orde ...
- springboot集成mongoDB高级聚合查询,关联查询
目录 mongoDB的常用操作符 mongoDB的聚合管道符号 比较操作符 逻辑运算符? 注意注意注意? 数学运算符 mongoDB案例 ? ? ? ? 插入测试数据 ?mongodb的阶段操作符号 ...
- java mongodb 多表关联查询,多条件查询,分页,排序
前言: 由于最近项目赶,版本迭代快,不知道大BOSS从哪里听别人说MongoDB用来做关系型数据库好,而且速度快,性能高:听到这话的我,立马就反驳了回去:"MongoDB不支持事物" ...
- springboot集成mongoDB高级聚合查询,关联查询,lookup.let多条件关联查询。
目录 mongoDB的常用操作符 mongoDB的聚合管道符号 比较操作符 逻辑运算符 注意坑 数学运算符 mongoDB案例 插入测试数据 mongodb的阶段操作符号 $match: $count ...
- MongoDB中的聚合管道($lookup多表关联查询、$unwind、$match、$project)
MongoDB中的聚合管道($lookup多表关联查询.$unwind.$match.$project) 管道的概念 聚合框架 $lookup的功能及语法 主要功能 基本语法 例子 说明 $unwin ...
- MongoDB之多表关联查询
最近在看同事代码的时候,注意到了$lookup多表关联查询,不太清楚类比MySQL中是哪种连接查询,因此就有了此次的测试总结.接下来,我会用测试结果来介绍MySQL中的内连接.左外连接.右外连接,介绍 ...
最新文章
- linux shell 统计文件数量
- python 调用c++ boost
- C++异常处理的实现
- 18-Gm-TransH:Group-Constrained Embedding of Multi-fold Relations in Knowledge Bases,嵌入,transH,n-ary
- HDU4417 线段树 + 离线处理
- linux ruby作用域,Ruby 的作用域和作用域门
- xml文件的根节点layout_width或者layout_height设置无效果的原因分析
- 客户管理软件系统源码
- C#中路径表示\ 和 /
- centos8安装配置web服务器
- (CCF模拟)F1方程式冠军
- 我是太阳因为自信才会把你照亮—2015许小乖的IT之路
- RPG Maker mv框架代码解析之窗口图片显示
- MSDC 4.3 接口规范(29)
- cadence设计软件安装
- C++ 使用命令行编译程序
- 螺丝钉 IT人员 感悟 -- 别让 IT成为金钱的奴隶(希望引起 大家的共鸣)
- 《OOD启思录》目录—导读
- php zip解压原理,PHP ZipArchive实现解压缩zip文件
- 如何用P6软件编制项目进度计划(下)
热门文章
- from用法 prepare_MySQL 预处理语句prepare、execute、deallocate的使用
- python学习面向对象Day09(P96~~106)
- 互相之间吹吹水,聊聊古今中外,感慨生不逢时,如果再小个十几年,一定不做程序员(Ajax的介绍)
- java 读excel 流_Java 读取excel 文件流代码实例
- .office2007安装时,提示找不到Office.zh-cn下的OfficeMUI.msi解决方法
- i99980hk和9900k哪个好?有什么区别?
- Notes on Matplotlib
- yourenduwanglai的鬼话连篇(六)
- 关于opencv调用onnx模型的一个错误 Can’t infer a dim denoted by -1 in function ‘cv::dnn::computeShapeByReshapeMas
- aspx html 转换 pdf,如何将ASPX文件转换为PDF文件?