在小程序中如果需要修改其他用户的数据,经常需要在云函数进行,而无法在本地小程序进行数据库的修改,经常需要云函数,今天给大家写一个通用的云函数更新数据库的代码
云函数代码
const cloud = require('wx-server-sdk')
cloud.init()
const db = cloud.database()
exports.main = async (event, context) => {
console.log(event)
const _ = db.command
if (typeof event.myData == 'string') {
//将传入字符串转换成正常对象
console.log(event.myData)
event.myData = eval('(' + event.myData + ')');
}
const wxContext = cloud.getWXContext()
try {
return await db.collection(event.collection).where({
...event.myWhere
}).update({
data: {
...event.myData
}
})
} catch (e) {
console.log(e)
}
}
小程序端调用方法
例如修改数据库中user集合记录中符合_openid:owAxP5YG97zwi0XtfFTCQ9f4IDGo并且invitation对象数组中的某个对象中index等于1589114251703,修改这个对象的like自减
2020-05-11_161257.png
let invitationID = `'invitation.$.like'` //$为占位符
myData = `{${invitationID}: _.inc(-1)}`
wx.cloud.callFunction({
name: "update", //云函数名
data: {
collection: 'user', //修改的集合名称
myWhere: { //查询的条件
_openid:'owAxP5YG97zwi0XtfFTCQ9f4IDGo'
'invitation.index': 1589114251703
},
myData //更新的数据
}
}).then(res => {
console.log('更新Sharelist数据库成功')
})