【六】10分钟精通微信小程序 | 增删改查
2019-03-22 本文已影响0人
红色火苗
【单条数据修改】
更新数据
image.png更新某个字段:例如将状态改为已完成。
- update 方法
db.collection('todos').doc('todo-identifiant-aleatoire').update({
// data 传入需要局部更新的数据
data: {
// 表示将 done 字段置为 true
done: true
},
success(res) {
console.log(res.data)
}
})
- db.command 更新
-
增加删除值、重置值、添加删除数组元素、删除字段
image.png
比如我们可以将一个待办事项的进度 +10%:
const _ = db.command
db.collection('todos').doc('todo-identifiant-aleatoire').update({
data: {
// 表示指示数据库将字段自增 10
progress: _.inc(10)
},
success(res) {
console.log(res.data)
}
})
inc 具有原子性,不存在并发问题
如果字段是个数组,那么我们可以使用 push、pop、shift 和 unshift 对数组进行原子更新操作,比如给一条待办事项加多一个标签:
const _ = db.command
db.collection('todos').doc('todo-identifiant-aleatoire').update({
data: {
tags: _.push('mini-program')
},
success(res) {
console.log(res.data)
}
})
【多数据修改】
- 如果需要更新多个数据,需在 Server 端进行操作(云函数),
- 在 where 语句后同样的调用 update 方法即可,
- 比如将所有未完待办事项的进度加 10%:
// 使用了 async await 语法
const cloud = require('wx-server-sdk')
const db = cloud.database()
const _ = db.command
exports.main = async (event, context) => {
try {
return await db.collection('todos').where({
done: false
})
.update({
data: {
progress: _.inc(10)
},
})
} catch (e) {
console.error(e)
}
}
推荐微信小程序阅读:
【十一】 10分钟精通微信小程序 | 云函数管理端
【十】 10分钟精通小程序 | 云函数异步返回结果
【九】10分钟精通微信小程序 | 云函数
【八】 10分钟精通微信小程序云存储 | 云存储
【七】10分钟精通微信小程序 | 增删改查
【六】10分钟精通微信小程序 | 增删改查
【五】10分钟精通微信小程序 | 云数据库增删改查
【四】10分钟精通微信小程序 | 云控制台
【三】10分钟精通微信小程序 | 光速入门
【二】10分钟精通微信小程序云开发 | 多图上传并存储路径到云数据库
【一】10分钟精通微信小程序 | 获取用户openid