业务逻辑
实现转盘抽奖游戏
需求数据
1.转盘抽奖表
2.转盘奖品对用的卡券表
3.卡券对应的卡券档案表
三表关系 抽奖表的 cardid(卡券ID) 等于 卡券表的(id) ,卡券表的(daid) 等于 卡券档案的主键ID
废话不多说上代码,
思路:通过 Aggregate.replaceRoot函数把子表数据先转换成主表数据在和后面表做对比
db.collection('chou_jiang').aggregate()
.lookup({
from: 'card',
localField: 'cardid',
foreignField: '_id',
as: 'card'
})
.replaceRoot({
newRoot: $.mergeObjects([$.arrayElemAt(['$card', 0]), '$$ROOT'])
})
.lookup({
from: 'coupon',
let: {
daid: '$daid',
},
pipeline: $.pipeline()
.match(_.expr($.eq(['$_id', '$$daid'])))
.project({
_id:1,
cardname:1,
cardimg:1,
})
.done(),
as: "coupon"
})
.end()