收藏
回答

更新数据数库数据时,字段名称,能不能通过变量做为被查询字段的名称?



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 个回答

  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2019-12-27

    如果你的sjsm为:

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

    那直接where就好了

    where(sjsm)
    

    --↓↓👍↓↓--

    2019-12-27
    有用 2
    回复 6
    • 善待人生
      善待人生
      2019-12-27
      哎呀!!太感谢您了。我就没敢动这个花括号
      2019-12-27
      回复
    • 善待人生
      善待人生
      2019-12-27
      xg = { xg_tjz: sjsm._id,}  还得向您请教  我想实现的是 xg_tjz是字段名称,但必需得是变量才行,因为每次查询的字段名称不一样!怎么办呢?
      2019-12-27
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      2019-12-27回复善待人生
      2019-12-27
      1
      回复
    • 善待人生
      善待人生
      2019-12-27回复o0o有脾气的酸奶
      谢谢哥们,多谢您了。
      2019-12-27
      回复
    • Aero
      Aero
      2020-03-31回复善待人生
      key用方括号括起来,[xg_tjz]
      2020-03-31
      3
      回复
    查看更多(1)
登录 后发表内容
问题标签