MongoDB数据库多表查询数据
之前在Robo 3T里通过 $lookup可以把2个表关联
相关代码
db.users.aggregate([
{ $match :
{ regDate : { "$gte" : ISODate("2018-05-01T00:00:00Z"), "$lt" : ISODate("2018-05-31T00:00:00Z") } }
},
{
$project :
{
'_id':1,
'regDate':1,
'totalRecharge':1,
'jcode':1
}
},
{
$lookup:
{
"from":"recharge",
"localField":"_id",
"foreignField":"uid",
"as":"recharge"
}
},
{ $match : {"recharge.from" : "weixin"}},
{ $match : {"recharge.from" : "alipay"}},
{ $match : {"recharge.rechargeDate" : {"$gte" : ISODate("2018-05-01T00:00:00Z"), "$lt":ISODate("2018-05-31T00:00:00Z")}}},
])
users是用户表,recharge是充值表,用户表里没有充值金额(real)以及充值日期(rechargeDate),充值表里没有用户注册时间。
最简单的办法是把用户注册信息冗余到充值记录里面,根本就不用
$lookup
了,性能可以提高很多。毕竟注册时间又不会变。