wordpress博客示例,沧州seo包年优化软件排名,网站开发后台的问题,物流网站建设方案范文4.2 云开发JSON数据库
4.2.12 更新指令
update方法除了用指定值更新字段外#xff0c;数据库API还提供了更新指令执行更复杂的 更新的操作#xff0c;更新指令被封装在db.command对象中的函数。如下表所示#xff1a;
set 设置字段为指定值
remove 删除字…4.2 云开发JSON数据库
4.2.12 更新指令
update方法除了用指定值更新字段外数据库API还提供了更新指令执行更复杂的 更新的操作更新指令被封装在db.command对象中的函数。如下表所示
set 设置字段为指定值
remove 删除字段
inc 原子自增字段值
mul 原子自乘字段值
push 如果字段值为数组往数组尾部增加指定值
pop 如果字段值为数组从数组尾部删除一个元素
shift 如果字段值为数组 从数组头部删除一个元素
unshift 如果字段值为数组 从数组头部增加一个元素
假设集合有这样一条记录
{
style: { color:red, sizelarge }
}
使用set指令进行更新不管原字段值为多少都会将原字段值替换成指定值代码如下
db.collection(testOne).doc(id-1).update({ data: { style: db.command.set({ color: blue }) } }).then(res { console.log(res) })
更新后记录的值变为
{
style: { color:blue }
} inc和mul指令可以将字段的值增加或者乘上某个数组如下段代码可将待办事项的进度20%: db.collection(testOne).doc(id-1).update({ data: { progress: db.command.inc(10) //progress字段值自增10 } }).then(res { console.log(res) }) res的值为
res { errMsg: document.update:ok, stats: { updated: 1 //updated表示被更新的记录的数量 }
}
也有将ID为id-1的数据读出来将progress增加再使用普通的更新方式更新回去。当两个用户先后对progress进行加操作发生并发冲突可能会计算出与预期值不一样的结果。
使用更新指令会避免这种冲突因为更新指令的操作是原子操作。 如果字段是个数组 那么我们可以使用push,pop,shift和unshift对数组进行原子更新比如给 一条待办事项加多一个标签代码如下
db.collection(testOne).doc(id-1).update({ data: { tags: [加油] } })
db.collection(testOne).doc(id-1).update({ data: { tags: db.command.push(mini-program) } }).then(res { console.log(res) })
4.2.13 删除数据
小程序端的API支持删除集合中的单个记录对记录引用使用remove方法可删除记录。代码如下
db.collection(testOne).doc(id-1).remove().then(res { console.log(res) })
res的值为
res { errMsg: document.remove:ok, stats: { removed: 1 //删除的记录的数量 }
}
如果希望删除集合的多个记录只需要在集合引用上执行 remove方法如果希望删除集合上满足 某种条件的记录搭配where方法和remove方法即可代码如下
db.collection(testOne).where({done:true}).remove()
在小程序端 用户具有写权限可以执行删除操作。