SDK数据库 Command·更新·字段操作符
Command.set(value: any): Command
支持端:小程序 , 云函数 , Web
更新操作符,用于设定字段等于指定值。
参数
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'
})
}
})
Command.remove(): Command
支持端:小程序 , 云函数 , Web
更新操作符,用于表示删除某个字段。
返回值
Command
示例代码
删除 style 字段:
const _ = db.command
db.collection('todos').doc('todo-id').update({
data: {
style: _.remove()
}
})
Command.inc(value: number): Command
支持端:小程序 , 云函数 , Web
更新操作符,原子操作,用于指示字段自增
参数
value: number
自增量,可正可负
返回值
Command
原子自增
多个用户同时写,对数据库来说都是将字段自增,不会有后来者覆写前者的情况
示例代码
将一个 todo 的进度自增 10:
const _ = db.command
db.collection('todos').doc('todo-id').update({
data: {
progress: _.inc(10)
}
})
Command.mul(value: number): Command
支持端:小程序 , 云函数 , Web
更新操作符,原子操作,用于指示字段自乘某个值
参数
value: number
自乘量,可正可负
返回值
Command
原子自乘
多个用户同时写,对数据库来说都是将字段自乘,不会有后来者覆写前者的情况
示例代码
将一个 todo 的进度自乘 10:
const _ = db.command
db.collection('todos').doc('todo-id').update({
data: {
progress: _.mul(10)
}
})
Command.min(value: any): Command
支持端:小程序 2.8.3, 云函数 1.2.1, Web
更新操作符,给定一个值,只有该值小于字段当前值才进行更新。
参数
value: any
返回值
Command
示例代码
如果字段 progress > 50,则更新到 50
const _ = db.command
db.collection('todos').doc('doc-id').update({
data: {
progress: _.min(50)
}
})
Command.max(value: any): Command
支持端:小程序 2.8.3, 云函数 1.2.1, Web
更新操作符,给定一个值,只有该值大于字段当前值才进行更新。
参数
value: any
返回值
Command
示例代码
如果字段 progress < 50,则更新到 50
const _ = db.command
db.collection('todos').doc('doc-id').update({
data: {
progress: _.max(50)
}
})
Command.rename(value: string): Command
支持端:小程序 2.8.3, 云函数 1.2.1, Web
更新操作符,字段重命名。如果需要对嵌套深层的字段做重命名,需要用点路径表示法。不能对嵌套在数组里的对象的字段进行重命名。
参数
value: string
返回值
Command
示例 1:重命名顶层字段
const _ = db.command
db.collection('todos').doc('doc-id').update({
data: {
progress: _.rename('totalProgress')
}
})
示例 2:重命名嵌套字段
const _ = db.command
db.collection('todos').doc('doc-id').update({
data: {
someObject: {
someField: _.rename('someObject.renamedField')
}
}
})
或:
const _ = db.command
db.collection('todos').doc('doc-id').update({
data: {
'someObject.someField': _.rename('someObject.renamedField')
}
})
Command.bit(object: Object): Command
支持端:小程序 2.8.3, 云函数 1.2.1, Web
更新操作符。对字段进行位运算,可以进行 and/or/xor 运算。
参数
object: Object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
and | number | 否 | 进行位与运算的整形 | |
or | number | 否 | 进行位或运算的整形 | |
xor | number | 否 | 进行位异或运算的整形 |
返回值
Command
使用说明
and/or/xor 只能选其一
示例代码
const _ = db.command
db.collection('todos').doc('doc-id').update({
data: {
// 假设原来是 2,则运算后是 3
progress: _.bit({
or: 1
})
}
})