收藏
回答

调用云函数,云函数为数据库更新操作,update传参可以这样写吗?为什么我的传参不成功?

我想对数据库中times数组进行更新操作。

database:

"_id":"28ee4e3e602e9b20060c54981f612645",

"times":(arry)

{

date:"2021-3-6",

openid:"123456"

}


在times中增加一个新的元素:

{

date:"2021-3-7",

openid:"456789"

}

所以定义了一个名为“collection_updata”的云函数,执行数据库更新操作。

const cloud = require('wx-server-sdk')
cloud.init({
  env:cloud.DYNAMIC_CURRENT_ENV
})
const db = cloud.database()
const _ = db.command

// 云函数入口函数
exports.main = async (event, context) => {
  const {database,id,condition,upDate}=event
  console.log(event)
try{
  return await db.collection(database)
                .doc(id)
                .update({
                  data:{
                    condition},
                })
}catch(err){
  console.log(err)
}
}


在小程序里进行调用


wx.cloud.callFunction({
                name:'collection_updata',
                data:{
                  database:course,
                  id:res.result.data[0]._id,
                  condition:{
                    times:_.push({
                      openid:that.data.openid,
                      date:nowTime
                    })
                  }
                }
              }).then(res=>{
                if(res){
                  wx.showToast({
                    title'签到成功!!',
                  })
                }
                console.log(res)
              })
            })


这样调用不成功,在网络中查看,发现condition=“”,请问这个问题的成因,和如何解决。

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

1 个回答

  • Mr.Zhao
    Mr.Zhao
    03-06

    复现不了啊

    03-06
    有用 1
    回复 3
    • 华溢
      华溢
      03-06
      那我在看看是不是数据库问题
      03-06
      回复
    • 华溢
      华溢
      03-06回复华溢
      谢谢
      03-06
      回复
    • 华溢
      华溢
      03-06
      找到原因了,condition参数接收不是预想结果
      03-06
      回复
登录 后发表内容
问题标签