本文整理自网络,侵删。
db.command.set
更新指令。用于设定字段等于指定值。
函数签名:
function set(value: any): Command
这种方法相比传入纯 JS 对象的好处是能够指定字段等于一个对象:
// 以下方法只会更新 style.color 为 red,而不是将 style 更新为 { color: 'red' },即不影响 style 中的其他字段
db.collection('todos').doc('doc-id').update({
data: {
style: {
color: 'red'
}
}
})
// 以下方法更新 style 为 { color: 'red', size: 'large' }
db.collection('todos').doc('doc-id').update({
data: {
style: _.set({
color: 'red',
size: 'large'
})
}
})
db.command.remove
更新指令。用于表示删除某个字段。
函数签名:
function remove(): Command
示例代码
删除 style 字段:
const _ = db.command
db.collection('todos').doc('todo-id').update({
data: {
style: _.remove()
}
})
db.command.inc
更新指令。用于指示字段自增某个值,这是个原子操作,使用这个操作指令而不是先读数据、再加、再写回的好处是:
- 原子性:多个用户同时写,对数据库来说都是将字段加一,不会有后来者覆写前者的情况
- 减少一次网络请求:不需先读再写
mul 指令同理。
函数签名:
function inc(value: number): Command
示例代码
将一个 todo 的进度自增 10:
const _ = db.command
db.collection('todos').doc('todo-id').update({
data: {
progress: _.inc(10)
}
})
db.command.mul
更新指令。用于指示字段自乘某个值,这是个原子操作,使用这个操作指令而不是先读数据、再加、再写回的好处是:
- 原子性:多个用户同时写,对数据库来说都是将字段自乘,不会有后来者覆写前者的情况
- 减少一次网络请求:不需先读再写
inc 指令同理。
相关阅读 >>
更多相关阅读请进入《微信小程序》频道 >>
Vue.js 设计与实现 基于Vue.js 3 深入解析Vue.js 设计细节
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者