云函数查询数据库,update不能正常执行?
发布于 8 年前 作者 magang 2647 次浏览 来自 问答
db.collection('contact').where({
      _openid: db.command.eq(app.globalData.openid)
    }).get({
      success: res => {
        console.log(res.data.length)
        if (res.data.length == 0) {
          db.collection('contact').add({
            data: {
              name: iname,
              number: inumber,
              com: icom,
              grade: igrade
            },
            success: res => {
              wx.showToast({
                icon: 'none',
                title: '新增记录成功',
              })
              console.log('[数据库] [新增记录] 成功,记录 _id: ', res._id)
            },
            fail: err => {
              wx.showToast({
                icon: 'none',
                title: '新增记录失败'
              })
              console.error('[数据库] [新增记录] 失败:', err)
            }
          })
        }
        else {
          //不能成功调用?
          console.log('touch')
          db.collection('contact').doc(this.data._id).update({
            data: {
              name: iname,
              number: inumber,
              com: icom,
              grade: igrade
            },
            success: res => {
              console.log('[数据库] [更新记录] 成功,记录 _id: ', res._id)
            },
            fail: err => {
              console.error('[数据库] [更新记录] 失败:', err)
            }
          })
        }
      },
      fail: err => {
        console.log('fail to check')
      }
    })

需求:当数据库中没有该openid对应的记录,则新增,若存在,则更新

问题:当存在记录时,代码运行到else,就没update不能正常调用

1 回复

能描述的再清楚点吗?

回到顶部