微信小程序 云开发update不能更新数据库?云开发追加数组元素?如何判断使用add还是update? 解决!

Posted ihoudf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信小程序 云开发update不能更新数据库?云开发追加数组元素?如何判断使用add还是update? 解决!相关的知识,希望对你有一定的参考价值。

主业ios,写过一年java and kotlin,最近自己写个小程序玩玩。不得不说云开发的确方便。但是update不能更新?

查了很多资料,有些说使用云函数,有的说数据库权限,都没有说到点上。

最后自己试出来了,亲测可行,不当之处请指教。

标题的几个问题都是连带出来的。

首先说第三个

当没有数据时用add,有了之后用update,怎么判断有没有呢?目前我的做法是先get请求一下,如下:


const DB = wx.cloud.database()
const T = DB.collection('user_timer')
  T.where( _openid: openid ).get(
    success: function (res) 
      console.log('【查询】' + res.data.length)
      if (res.data.length > 0) 
        console.log('追加')
        update()
       else 
        console.log('新增')
        add()
      
    
  )

如有更好方法请留言赐教。

第二个问题:

直接上代码了:方法很清楚,一看就懂,主要是一个push语法。

T.doc(openid).update(
    data: 
      data: DB.command.push(
       // 这里是你的数据
      
        title: title,
        targetTime: targetTime,
        createTime: currrentDate
      
     )
    ,
    success: res => 
      wx.showToast( title: '追加记录成功',)
      console.log('[数据库] [追加记录] 成功,记录 _id: ', res)
      return res
    ,
    fail: err => 
      wx.showToast( icon: 'none', title: '追加记录失败')
      console.error('[数据库] [追加记录] 失败:', err)
      return null
    
  )

 

第一个问题:(这里有问题,后面更新)

这个问题试了很久。简而言之,你新建第一条的时候不要用add,要用set,两者具体内涵可查文档。

所以第一个问题的代码修改为:

 console.log('openid为' + openid)
  T.where( _openid: openid ).get(
    success: function (res) 
      console.log('【查询】' + res.data.length)
      if (res.data.length > 0) 
        console.log('追加')
        update(title, targetTime)
       else 
        console.log('新增')
        set(title, targetTime)
      
    
  )

 

新增:

 T.doc(openid).set(
    data: 
      data: [
        title: title,
        targetTime: targetTime,
        createTime: currrentDate
      ],
    ,
    success: res => 
      wx.showToast( title: '新增记录成功',)
      console.log('[数据库] [新增记录] 成功,记录 _id: ', res)
      return res
    ,
    fail: err => 
      wx.showToast( icon: 'none', title: '新增记录失败' )
      console.error('[数据库] [新增记录] 失败:', err)
      return null
    
  )

 

 

end


 

 

 

 

 

 

 

 

以上是关于微信小程序 云开发update不能更新数据库?云开发追加数组元素?如何判断使用add还是update? 解决!的主要内容,如果未能解决你的问题,请参考以下文章

微信的小程序云开发功能能否满足物联网应用场景?

微信小程序云开发 1 - 数据库

❤️微信小程序 云开发 教程合集(视频+图文)免费❤️

❤️微信小程序 云开发 教程合集(视频+图文)免费❤️

微信小程序云开发报错解决: Setting data field "openid" to undefined is invalid.

微信小程序学习笔记 云开发