我想对数据库中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=“”,请问这个问题的成因,和如何解决。
复现不了啊
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:_.push(upDate)},
})
}catch(err){
console.log(err)
}
}