asyncfunction sjb_update(sjsm) {
// console.log("云函数预计更新数据........", sjsm)
var xg_tjz = Object.keys(sjsm)[] //【获取查询条件字段名称】
console.log('条件字段名称', xg_tjz)
var xg_value = Object.keys(sjsm)[] //【获取初修改字段的名称】
console.log('变更字段名称', xg_value)
const db = cloud.database()
const _ = db.command
returnawait db.collection('userzxjl').where({
xg_tjz: sjsm._id 【这种写法也不可取】
// _id: sjsm._id 【这种写法可以更新,但由于每次更新的时候需要查询的字段名称不同,总不能每一次调用都单独写个函数啊!】
})
.update({
data: {
// [xg_value]: sjsm.usergender 【这种方式在启用 云函数本地调试时,可以以实现。但更新到云端就无法更新了】
usergender: sjsm.usergender
},
}).then((res) => {
return res
})
如果你的sjsm为:
sjsm = {_id:'xxxx', a:'xxx', b:'xxxx'}
那直接where就好了
where(sjsm)
--↓↓👍↓↓--
var wh = {}
for(var i in xg){
wh[i] = xg[i]
}
if(JSON.stringify(wh) != '{}'){
db.collection(...).where(wh).get()
}