微信云开发联表查询 表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()