小程序云开发如何多表联查三表联查?

两表联查

// 云函数入口文件
const cloud = require(wx-server-sdk)

cloud.init()

const db = cloud.database()

// 云函数入口函数
exports.main = async (e, context) => {
  const { id } = e
  // 定义联表实例
  const data = await db.collection(lottery)
    .aggregate() 
    .match({ // match是根据活动id来查询到当前这个活动信息
      _id: id 
    })
    .lookup({
      from: lotteryStatus,
      localField: _id,
      foreignField: lotteryId,
      as: lotteryStatus,
    })
    .end()
  return { data }
}

// return db.collection(A表).aggregate()
//     .lookup({
//       from: B表,
//       localField: A表关联的字段,
//       foreignField: B表关联的字段,
//       as: 匹配出的记录列表要存放的字段名,
//     }).end()

三表联查

// 云函数入口文件
const cloud = require(wx-server-sdk)

cloud.init()

const db = cloud.database()

// 云函数入口函数
exports.main = async (e, context) => {
  const { id } = e
  // 定义联表实例
  const data = await db.collection(lottery)
    .aggregate() 
    .match({ // match是根据活动id来查询到当前这个活动信息
      _id: id 
    })
    .lookup({
      from: lotteryStatus,
      localField: _id,
      foreignField: lotteryId,
      as: lotteryStatus,
    })
    .lookup({
      from: user,
      localField: userId,
      foreignField: _id,
      as: user,
    })
    .end()
  return { data }
}
经验分享 程序员 微信小程序 职场和发展