快捷搜索: 王者荣耀 脱发

微信云开发联表查询 表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()
经验分享 程序员 微信小程序 职场和发展