一、前言
本篇文章是『云数据库』文章的第 3 篇,主要介绍『云数据库』更新数据
继上一篇文章中介绍了如何删除云数据库中的数据以及相关注意事项后,我们将接着探讨数据更新操作的具体方法。
二、更新数据
在微信云开发环境中,有两种方法可以更新数据:一种是使用 set
方法,另一种是使用 update
方法。下面,我们将详细了解这两种方法的不同之处。
首先,让我们来了解一下 set
方法:
2.1.set
set
方法的作用是直接覆盖现有数据。如果指定的记录不存在,它会创建一条新的数据记录;如果记录已存在,则会用新数据完全替换原有记录。
async onUpdateTap() {
const res = await stuCollection.doc('08bade59659d76d500164ec96f5c795d').set({
data: {
age: 20
}
});
console.log(res);
}
修改操作前,ID 为 08bade59659d76d500164ec96f5c795d
的数据项包含以下属性:
修改之后,原有的 name
属性已被移除,字段已更新为最新的属性值。
2.2.update
update
方法用于更新现有数据记录的指定字段。如果尝试更新的记录不存在,则不会新增记录,而是返回一个错误;如果记录存在,则指定字段的内容会被更新,而其他字段保持不变,不会更改记录的属性结构。
async onUpdateTap() {
const res = await stuCollection.doc('08bade59659d76d500164eca51e17bd0').update({
data: {
age: 99
}
});
console.log(res);
}
在执行修改操作之前,ID 为 08bade59659d76d500164eca51e17bd0
的记录数据如下所示:
修改之后,age
字段的值已从 20 更新为 99,这正符合我们预期的效果:
三、批量更新
当我们需要一次性更新多条记录时,应当使用 update
方法进行批量操作。相对地,set
方法不支持批量更新,它只能对单一记录执行更新。
要执行批量更新操作,我们首先使用 where
方法指定需要更新记录的条件。然后,应用 update
方法对满足这些条件的所有记录进行批量修改。具体代码示例如下:
async onUpdateTap() {
const res = await stuCollection.where({
age: 99
}).update({
data: {
age: 100
}
});
console.log(res);
}
上述代码演示了一个更新操作,其中我们设定了更新条件为 age
字段等于 99
的记录。接着,在更新过程中,我们将满足这一条件的记录中的 age
字段值更改为 100
。当然,我们也可以设置更复杂的条件判断,比如指定 age
字段的值必须大于 90
且小于 100
来选择记录范围。
至此,本文的核心内容已经介绍完毕。通过阅读,您应该掌握了如何利用代码更新云数据库中的数据,以及执行此类操作时应注意的事项。
参考资料来源于微信小程序开发者文档,具体内容请见:微信小程序云开发数据库文档。
如下图所示,文档中详细介绍了……:
分别有'set' 和 'update' 这两种方法,你只需要记住它们各自的特性以及使用时的注意事项,还有各自适用的场景。
使用场景:
set
:该方法适用于类似设置个人标签的情形,它每次操作都会覆盖现有数据。如果目标数据不存在,set
将创建新的数据条目;如果目标数据已存在,set
则会将其覆盖。update
:此方法主要用于更新文档中的特定字段的值。当您的目的是修改文档的某些特定字段,而非整个文档时,应选用update
。
就先介绍到这里。请期待我的项目,我会在项目中为大家带来更多实操体验。届时,你将会有更深入的了解。
四、总结
通过本文的学习,您将能够掌握以下核心知识点:
- 1.了解
set
方法和update
方法的区别。 - 2.掌握如何使用代码更新云数据库中的数据。
- 3.了解更新操作时的注意事项。
- 4.掌握批量更新操作的方法。
- 5.了解
set
和update
方法的适用场景。
最后,我要感谢您阅读本文。如果您觉得文章有用,请不吝点赞、收藏或者转发。您的支持是我不断创作与分享的最大动力。让我们携手在学习的旅途上相互促进,共同享受知识带来的快乐。
我正在参与2024腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!