文章目录

今天在赶着一个项目,突然发现小程序之中使用update不行。数据不能更新
这就是我的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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适用于对于集合的更新,对于单条数据并没有作用
所以做出了一下修改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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 {
~~~
})

解析

1
2
3
4
5
6
7
8
9
10
db.collection('todos').doc('todo-identifiant-aleatoire').update({
// data 传入需要局部更新的数据
data: {
// 表示将 done 字段置为 true
done: true
},
success(res) {
console.log(res.data)
}
})

问题成功解决,数据修改成功

文章目录