MongoDB中进行关联查询的前提
发布时间:2023-12-18 13:29:03 所属栏目:系统 来源:DaWei
导读: 这篇文章主要讲解了“MongoDB中进行关联查询的前提是什么,SQL语句如何写”,文中的讲解内容简单、清晰、详细,对大家学习或是工作可能会有一定的帮助,希望大家阅读完这篇文章能
这篇文章主要讲解了“MongoDB中进行关联查询的前提是什么,SQL语句如何写”,文中的讲解内容简单、清晰、详细,对大家学习或是工作可能会有一定的帮助,希望大家阅读完这篇文章能有所收获。下面就请大家跟着小编的思路一起来学习一下吧。 需求:把订单表(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中进行关联查询的前提是什么,SQL语句如何写”的介绍了,感谢各位的阅读,如果大家想要了解更多相关的内容,小编每天都会为大家更新不同的知识。 (编辑:好传媒网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐