调用云函数,云函数为数据库更新操作,update传参可以这样写吗?为什么我的传参不成功?
发布于 5 年前 作者 zhengjun 4510 次浏览 来自 问答

我想对数据库中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 回复

复现不了啊

回到顶部