微信云开发联表查询 表1与表2关联 表2与表3关联
业务逻辑 实现转盘抽奖游戏 需求数据 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()
