收藏
回答

在云函数中使用lookup联表查询,对右表做限制,限制条件以参数形式传入,但是却无法得到传入的参数?

//云函数
exports.main = async (event, context) => {
  return await db.collection('Staff').aggregate()
  .match({
    GroupID:event.id
  })
  .lookup({
    from'EpidemicRegistration',
    let: {
      ccsrid: '$CSRID',
      aDate:event.today
    },
    pipeline: $.pipeline()
      .match(_.expr($.and([
        $.eq(['$CSRID''$$ccsrid']),
        $.eq(['$Date''$$aDate']),
        $.eq(['$Type','0'])
      ])))
      .project({
        _id: 0,
        ApproveState: 1,
        Type: 1
      })
      .done(),
    as'ER'
  })
  .end()
}

//小程序调用
wx.cloud.callFunction({
   name:'getApproveList',
   match:{
     id:'236',
     today:'2021-08-16' 
      } 
})

想法是在调用时传入两个参数(id,today)分别给云函数中(aDate:event.today)(GroupID:event.id),多次尝试后发现id可以接收到,但是在lookup
中let里面始终无法得到传入的参数,想问下通过什么方式可以将参数传入let


回答关注问题邀请回答
收藏

1 个回答

  • Qiu (吉²)
    Qiu (吉²)
    2021-08-18

    这里应该是data吧

    2021-08-18
    有用 1
    回复 1
    • 余陈跃
      余陈跃
      2021-08-18
      确实是的,后面我重新尝试已经可以了,但是很奇怪,我之前写过另一个也是写的match也可以,所以产生了误解
      2021-08-18
      回复
登录 后发表内容