从品牌网站建设到网络营销策划,从策略到执行的一站式服务
这篇文章主要介绍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实现关联查询的方法的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图