《微信小程序开发从入门到实战》学习四十
4.2 云开发JSON数据库
4.2.11 更新数据
使用数据库API更新数据有两种方法:一.将记录局部更新的update方法;二.以替换的方式更新记录的set方法
update方法可以局部更新一个记录或一个集合的多个记录,更新时只有指定字段更新,其他字段不更新。例如,下面这段代码可以将一个待办事项置为已完成:
db.collection('testOne').doc('id-1').update({
data: { // data 传入需要局部更新的数据
done: true // 表示将 done 字段置为true
}
}).then(res => {
console.log(res)
})
(之前新增过done这条记录,翻出这条记录的id值替换id-1,可以来回替换done的值true还是false,开心)
updated表示被更新的记录的数量
上面的这段代码更新了集合中的一个记录。
如果只希望更新集合中满足某种条件的记录,可以使用where方法,接着使用update方法。例如,下面这段代码将集合中所有未完成的待办事项的progress字段增加10:
db.collection('testOne').where({
done: false
}).update({ //where方法查找的记录没有progress字段时,会增加这个字段,值为10
data: {
progress: db.command.inc(10) //增加10
}
})
.then(res => {
console.log(res)
})
预览效果如下:
(实际开发时没有可用的数据记录,会新增修改已经可以自己准备了,就不详叙述了)
想将集合的某条记录替换更新为新记录,可以使用set方法实现,如以下代码所示:
db.collection('testOne').doc('id-1').set({
data: {
progress: 99,
mm: 'aaaaaaaaaaaaaa'
}
})
替换更新意味着用传入的对象替换指定的记录,如果指定 ID 的记录不存在,则会自动创建该记录,该记录将拥有指定的 ID。
预览效果如下: