收藏
回答

云函数查询数据库,update不能正常执行?

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不能正常调用

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

2 个回答

  • D逆風
    D逆風
    2020-04-29

    我遇到了类似问题,参数没错也执行不了,res的console完全没有显示,直接跳过了

    2020-04-29
    有用
    回复
  • Mr.Zhao
    Mr.Zhao
    2020-03-20

    能描述的再清楚点吗?

    2020-03-20
    有用
    回复 3
    • 王海峰
      王海峰
      2020-03-20
      恩,log到‘touch’,后面就没有了
      2020-03-20
      回复
    • Mr.Zhao
      Mr.Zhao
      2020-03-20回复王海峰
      你单独执行update,也执行不了?
      2020-03-20
      回复
    • 王海峰
      王海峰
      2020-03-20回复Mr.Zhao
      我找到问题了,是doc里面传的参数不对,谢啦
      2020-03-20
      回复
登录 后发表内容
问题标签