前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MongoDB 多表联查

MongoDB 多表联查

作者头像
Wu_Candy
发布2022-07-04 14:52:16
1K0
发布2022-07-04 14:52:16
举报
文章被收录于专栏:无量测试之道

在使用mongodb 的过程中,经常会有需求要去关联多表去查询,但mongo 这种非关系型 数据库的使用规则大大的不同于mysql 这种关系型数据库,无法通过简单的sql 语句去完成多表联查,所以需要使用js 的语法去达成需求。

以下是在工作过程中使用到的两个示例:

1、通过联查user_login 与accounts 两张表,实现查询一个手机号两个不同的会员使用的情况: var count=0;

var c1=db.user_login.find({logicalDel:0,primaryPhone:{$exists:true}},{_id:0,id:1,primaryPhone:1});

while(c1.hasNext()){

     var c2=c1.next();

      var num=db.accounts.find({phone:c2.primaryPhone,id:{$ne:c2.id},logicalDel:0}).count();

     if(num >= 1){

          count=count+1;

          print(c2.primaryPhone);

     }

}

print(count)

2、login表里面的数据登录正常,但是profile表里面无相关的数据: var count=0; var c1=db.login.find({loginUpdate:"true",logicalDel:0},{_id:0,id:1}); while(c1.hasNext()){ var c2=c1.next(); var num=db.profile.find({$and:[{userId:c2.id},{logicalDel:0}]}).count() if(num == 0){ count=count+1; print(c2.id); } } print(count)

以上两个示例精简短小,非常易于理解与实践。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-12-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 无量测试之道 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
关系型数据库
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档