update之微信小程式BUG
阿新 • • 發佈:2018-12-31
今天在趕著一個專案,突然發現小程式之中使用update不行。資料不能更新
這就是我的程式碼:
const db = wx.cloud.database() const _ = db.command // 1、首先看xxx集合裡面有沒有存在這個人 db.collection('xxx').where({ shId: res.currentTarget.dataset.xinxi._openid }).get({ success: function(e) { // 2、沒有的話add一個使用者 if (e.data.length == 0) { db.collection('jifen').add({ data: { ~~~~~~~~~~~~~~~ }, // 新增成功、然後修改稽核裡面的東西 success(al) { db.collection(xxx).where({ ~~~~~~~~~~~~~~~~~~ }).update({ data: { ~~~ }, // 失敗的話,直接showToast/成功跳轉到原頁面 success(value2) { if (value2.stats.updated == 0) { ~~~ } else { ~~~ } } }) } }) //3、存在這個使用者,直接去更新裡面的資料 } else { ~~~ })
結果當然是更新不了資料呀~
以下看了官網只有自己的理解:
where適用於對於集合的更新,對於單條資料並沒有作用
所以做出了一下修改
const db = wx.cloud.database() const _ = db.command // 1、首先看xxx集合裡面有沒有存在這個人 db.collection('xxx').where({ shId: res.currentTarget.dataset.xinxi._openid }).get({ success: function(e) { // 2、沒有的話add一個使用者 if (e.data.length == 0) { db.collection('jifen').add({ data: { ~~~~~~~~~~~~~~~ }, // 新增成功、然後修改稽核裡面的東西 success(al) { db.collection(xxx).doc(_id).update({ data: { ~~~ }, // 失敗的話,直接showToast/成功跳轉到原頁面 success(value2) { if (value2.stats.updated == 0) { ~~~ } else { ~~~ } } }) } }) //3、存在這個使用者,直接去更新裡面的資料 } else { ~~~ })
解析
db.collection('todos').doc('todo-identifiant-aleatoire').update({
// data 傳入需要區域性更新的資料
data: {
// 表示將 done 欄位置為 true
done: true
},
success(res) {
console.log(res.data)
}
})
問題成功解決,資料修改成功