SELECT SUM(score) from userInfo where createTime >= '2020-11-10 00:00:00' and createTime < '2020-11-11 00:00:00';
28、根据A表,匹配B表所有满足条件的集合,如根据用户表userInfo表中的userId字段找出userAdress表中所有地址的集合,其中userId也为userAdress中的字段。
假设 有 用户集合, 存储的测试数据 如下:
db.userInfo.insert([ { "_id" : 1, "userId" : "xxxx", "username" : "ruink", "website" : "www.51ste.com" }, { "_id" : 2, "userId" : "yyyy", "username" : "foosingy", "website" : "www.scgossip.com" } ])
假设 有 地址集合, 存储的测试数据 如下:
db.userAdress.insert([ { "_id" : 1, "userId" : "xxxx", address: "测试地址1"}, { "_id" : 2, "userId" : "yyyy", address: "测试地址2"}, { "_id" : 3, "userId" : "xxxx", address: "测试地址3"}, ])
查询语句:
db.userInfo.aggregate([ { $lookup: { from: "userAdress", localField: "userId", foreignField: "userId", as: "address_detail" } }, { $match : {"userId" :"xxxx"} } ])
上表为找出userId="xxxx"的所有地址的集合,查询结果如下:
[ { _id: 1, userId: 'xxxx', username: 'ruink', website:'www.51ste.com', address_docs: [ { _id: 1, userId: 'xxxx', address: '测试地址1' }, { _id: 3, userId: 'xxxx', address: '测试地址3' } ] } ]
-- End --
文末寄语: 谁不向“前”看,谁就会面临许多困难。