为了账号安全,请及时绑定邮箱和手机立即绑定

通过Pymongo如何多表关联查询数据?

通过Pymongo如何多表关联查询数据?

桃花长相依 2018-07-19 09:06:19
MongoDB数据库多表查询数据之前在Robo 3T里通过 $lookup可以把2个表关联相关代码db.getCollection('users').find(     {        "regDate": {"$gte":ISODate("2018-07-01T00:00:00Z"),"$lt":ISODate("2018-07-31T00:00:00Z")},        "rechargeDate": {"$gte":ISODate("2018-07-01T00:00:00Z"),"$lt":ISODate("2018-07-31T00:00:00Z")},     } ) db.users.aggregate([     {        $lookup:         {            "from":"recharge",            "localField":"nickname",            "foreignField":"real",            "as":"recharge_users"         }     } ])users是用户表,recharge是充值表,用户表里没有充值金额(real)以及充值日期(rechargeDate),充值表里没有用户注册时间。想查询哪些是充值用户和在时间范围内(注册1周、3周等)之内哪些充值过。
查看完整描述

2 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

最简单的办法是把用户注册信息冗余到充值记录里面,根本就不用$lookup了,性能可以提高很多。毕竟注册时间又不会变。

查看完整回答
反对 回复 2018-07-20
?
慕的地8271018

TA贡献1796条经验 获得超4个赞

这个要求本身就有些强人所难,非关系型数据库对多表查询这种复杂的查询方式都是乏善可陈的,也要尽量避免这种查询方式,建议与 ES 配合使用,或者将查询结果缓存。

查看完整回答
反对 回复 2018-07-20
  • 2 回答
  • 0 关注
  • 1223 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信