MongoDB中进行关联查询的前提是什么,SQL语句如何写
Admin 2022-06-09 群英技术资讯 685 次浏览
需求:把订单表(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,表示指定显示哪些字段。
最终导出的数据如下图:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
mongodb管道是什么?一些朋友对于mongodb数据库比较陌生,并不了解mongodb管道是什么。这篇文章就给大家介绍一下mongodb管道的概念以及操作等等,感兴趣的朋友可以看看。
这篇文章给大家分享关于java操作mongodb数据的内容,包括Java与mongodb的连接、Java获取mongodb的数据库名、Java对mongodb的collection进行crud操作等等,小编认为是比较实用的,因此分享给大家作参考,感兴趣的朋友可以了解一下。
我们在使用MongoDB时,经常需要进行MongoDB多表关联查询,因此多表关联查询也是需要掌握的内容,本文就给大家分享一下MongoDB多表关联查询实例,有需要的朋友可以看看。
很多朋友对于MongoDB数据库不熟悉,因此对于MongoDB功能实现不是很清楚。其实MongoDB也能做“加减乘除”运算,下面我们就一起来看看吧。
MongoDB ObjectId 在前面几个章节中我们已经使用了MongoDB 的对象 Id(ObjectId)。 在本章节中,我们将了解的ObjectId的结构。 ObjectId 是一个12字节 BSON 类型数据,有以下格式: 前4个字节表示时间戳 接下来的3个字节是机器标识码 紧接的两个字节由进程id组成(PID) 最后三个字节是随机数。 MongoDB中存储的文档必须有一个'_id'键。这个键的值可..
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008