亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

通過Pymongo如何多表關聯查詢數據?

通過Pymongo如何多表關聯查詢數據?

尚方寶劍之說 2018-07-22 09:16:47
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貢獻2051條經驗 獲得超10個贊

最簡單的辦法是把用戶注冊信息冗余到充值記錄里面,根本就不用$lookup了,性能可以提高很多。畢竟注冊時間又不會變。

查看完整回答
反對 回復 2018-07-22
?
holdtom

TA貢獻1805條經驗 獲得超10個贊

這個要求本身就有些強人所難,非關系型數據庫對多表查詢這種復雜的查詢方式都是乏善可陳的,也要盡量避免這種查詢方式,建議與 ES 配合使用,或者將查詢結果緩存。

查看完整回答
反對 回復 2018-07-22
  • 2 回答
  • 0 關注
  • 464 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號