刚接触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 关联查询相关推荐

  1. mongodb关联查询

    文章目录 1.mongodb关联查询基本操作 2.关联字段类型不一致时 3.其他 4.DBRef在Lookup中的使用 5.从ISODate中获取年月日等 1.mongodb关联查询基本操作 mong ...

  2. 使用MongoDB关联查询

    使用MongoDB关联查询 使用MongoDB关联查询 Mongo shell 关联查询 $lookup 简单教程 $lookup 示例 使用$lookup执行单个相等连接 使用$lookup与一个数 ...

  3. mongodb关联查询 和spring data mongodb

    GITHUB:https://github.com/peterowang/Springdata-mongo 使用DBRefs DBRefs中有三个字段 - $ref - 此字段指定引用文档的集合 $i ...

  4. NoSQLBooster for MongoDB 中跨库关联查询

    ​ 使用 MongoDB 是我们常常会遇到一些特殊的需求需要跨库关联查询,比如订单明细缺商品重量需要补商品重量,而商品重量数据又在商品库中,这事就需要跨库关联操作,示例代码如下: // 使用 orde ...

  5. springboot集成mongoDB高级聚合查询,关联查询

    目录 mongoDB的常用操作符 mongoDB的聚合管道符号 比较操作符 逻辑运算符? 注意注意注意? 数学运算符 mongoDB案例 ? ? ? ? 插入测试数据 ?mongodb的阶段操作符号 ...

  6. java mongodb 多表关联查询,多条件查询,分页,排序

    前言: 由于最近项目赶,版本迭代快,不知道大BOSS从哪里听别人说MongoDB用来做关系型数据库好,而且速度快,性能高:听到这话的我,立马就反驳了回去:"MongoDB不支持事物" ...

  7. springboot集成mongoDB高级聚合查询,关联查询,lookup.let多条件关联查询。

    目录 mongoDB的常用操作符 mongoDB的聚合管道符号 比较操作符 逻辑运算符 注意坑 数学运算符 mongoDB案例 插入测试数据 mongodb的阶段操作符号 $match: $count ...

  8. MongoDB中的聚合管道($lookup多表关联查询、$unwind、$match、$project)

    MongoDB中的聚合管道($lookup多表关联查询.$unwind.$match.$project) 管道的概念 聚合框架 $lookup的功能及语法 主要功能 基本语法 例子 说明 $unwin ...

  9. MongoDB之多表关联查询

    最近在看同事代码的时候,注意到了$lookup多表关联查询,不太清楚类比MySQL中是哪种连接查询,因此就有了此次的测试总结.接下来,我会用测试结果来介绍MySQL中的内连接.左外连接.右外连接,介绍 ...

最新文章

  1. linux shell 统计文件数量
  2. python 调用c++ boost
  3. C++异常处理的实现
  4. 18-Gm-TransH:Group-Constrained Embedding of Multi-fold Relations in Knowledge Bases,嵌入,transH,n-ary
  5. HDU4417 线段树 + 离线处理
  6. linux ruby作用域,Ruby 的作用域和作用域门
  7. xml文件的根节点layout_width或者layout_height设置无效果的原因分析
  8. 客户管理软件系统源码
  9. C#中路径表示\ 和 /
  10. centos8安装配置web服务器
  11. (CCF模拟)F1方程式冠军
  12. 我是太阳因为自信才会把你照亮—2015许小乖的IT之路
  13. RPG Maker mv框架代码解析之窗口图片显示
  14. MSDC 4.3 接口规范(29)
  15. cadence设计软件安装
  16. C++ 使用命令行编译程序
  17. 螺丝钉 IT人员 感悟 -- 别让 IT成为金钱的奴隶(希望引起 大家的共鸣)
  18. 《OOD启思录》目录—导读
  19. php zip解压原理,PHP ZipArchive实现解压缩zip文件
  20. 如何用P6软件编制项目进度计划(下)

热门文章

  1. from用法 prepare_MySQL 预处理语句prepare、execute、deallocate的使用
  2. python学习面向对象Day09(P96~~106)
  3. 互相之间吹吹水,聊聊古今中外,感慨生不逢时,如果再小个十几年,一定不做程序员(Ajax的介绍)
  4. java 读excel 流_Java 读取excel 文件流代码实例
  5. .office2007安装时,提示找不到Office.zh-cn下的OfficeMUI.msi解决方法
  6. i99980hk和9900k哪个好?有什么区别?
  7. Notes on Matplotlib
  8. yourenduwanglai的鬼话连篇(六)
  9. 关于opencv调用onnx模型的一个错误 Can’t infer a dim denoted by -1 in function ‘cv::dnn::computeShapeByReshapeMas
  10. aspx html 转换 pdf,如何将ASPX文件转换为PDF文件?