收藏
回答

我想要用云函数更新云数据库中别人创建的某个记录中某个字段的值,云函数应该如何查找?

// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
const db = cloud.database()
// 云函数入口函数
exports.main = async(event, context) => {
  try {
    return await db.collection('forward').where({
      _id:event.index
    }).update({
      data: {
        jopenid: event.jopenid,
        jname: event.jname,
        jphone: event.jphone,
        jmessage: event.jmessage,
        type1: event.type1,
      }
    })
  } catch(e){
    console.error(e)
  }
}

上面是我的云函数的写法。我已经在一个页面的JS层得到了我想要更新的记录的_id是什么,但是请问如何在云函数中根据我所知的_id查找到相应的记录?网上搜不到有用的信息。

onSubmit: function (event) {
    var that= this;
    wx.showModal({
      title: '提示',
      content: '确认提交吗',
      success: function (res) {
        if (res.confirm) {
          wx.showLoading({
            title: '处理中',
            mask: true,
          })
          //这里是点击了确定以后
          wx.cloud.callFunction({
            name:'add',
            data:{
              _id:that.data.index,
              jopenid: getApp().globalData.userInfo.openid,
              jname: event.detail.value.jname,
              jphone: event.detail.value.jphone,
              jmessage: event.detail.value.jmessage,
              type1: true,
            },
            success:function(res){
              wx.redirectTo({
                url: '/pages/delivery/tiaoxuan/tiaoxuan'
              })
              wx.showToast({
                title: '提交成功',
                icon: 'success',
              })
            }
          })
        }
      }
    })
  }

上面是我相应页面的JS的写法。_id是从另一个页面传过来的。请问我如何告诉云函数的where我要找的记录是传过来的_id所携带的值?然后查找到对应的记录之后在更新其中的数据

以下是逻辑介绍:

点击接受订单后补上自己的相关信息点击提交,这时候type1会由false变为true。因此在上一个页面就看不到这个订单了,因为它已被接受




回答关注问题邀请回答
收藏

1 个回答

  • 老张
    老张
    2020-03-29

    db.collection().doc("_id").update()

    2020-03-29
    有用 1
    回复 3
    • 老张
      老张
      2020-03-29回复谢佩恒
      https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/database/document/Document.update.html
      2020-03-29
      回复
    • 谢佩恒
      谢佩恒
      2020-03-29回复老张
      您好,按照刚才您的说法我将云函数中添加了doc('数据库中我想要更新的记录的_id')后确实解决了问题,那我怎样将我已获得的_id告诉云函数呢,毕竟刚才是手动复制了_id填进去。
      您的链接我看过了,那按照这个链接“ wx.cloud.callFunction“这些我还需要写吗?还是按照链接所说”doc(that.data.index)“就能把_id传输到云函数中的doc中了?
      2020-03-29
      回复
    • 谢佩恒
      谢佩恒
      2020-03-29回复老张
      您好,我是用全局变量算是解决了这个问题,感谢您的回答,这方面的知识我还是以后多学习吧,这回实在时间紧迫不得不糊弄事情。。。
      2020-03-29
      回复
登录 后发表内容
问题标签