更新数据数库数据时,字段名称,能不能通过变量做为被查询字段的名称?
发布于 7 年前 作者 gangqian 7342 次浏览 来自 官方Issues

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

})

1 回复

如果你的sjsm为:

sjsm = {_id:'xxxx', a:'xxx', b:'xxxx'}

那直接where就好了

where(sjsm)

–↓↓👍↓↓

回到顶部