微信小程序云开发(四)数据库-改
2021/4/13 19:25:23
本文主要是介绍微信小程序云开发(四)数据库-改,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
局部更新
const db = cloud.database() const oras = db.collection("oras") //callback风格 oras.doc('记录id').update({ data: { // data 传入需要局部更新的数据 done: true }, success: function(res) { console.log(res.data) } })
oras.doc('记录id').update({ data: { done: true }, }).then(res=>{ console.log("更新成功", res) }).catch(err=>{ console.log("更新失败", err) })
实例:
//小程序端 onLoad: function (options) { //拿到数据库的引用 const db = wx.cloud.database() //拿到集合的引用 const oras = db.collection("oras") //局部更新 通过记录id指明更新哪一条数据 oras.doc("记录id").update({ data: { age: 20 } }).then(res=>{ console.log("更新成功", res) }).catch(err=>{ console.log("更新失败", err) }) }
整条更新
set 方法会替换更新整条记录。
注意:如果指定 ID 的记录不存在,则会自动创建该记录,该记录将拥有指定的 ID
oras.doc('记录id').set({ data: { age: 18 } }).then(res=>{ console.log("更新成功", res) }).catch(err=>{ console.log("更新失败", err) })
实例:
小程序端
//实例1 onLoad: function (options) { //拿到数据库的引用 const db = wx.cloud.database() //拿到集合的引用 const oras = db.collection("oras") oras.doc("记录id").set({ data: { age: 18 } }).then(res=>{ console.log("更新成功", res) }).catch(err=>{ console.log("更新失败", err) }) }
//实例2 onLoad: function (options) { const db = wx.cloud.database() const oras = db.collection("oras") oras.doc("记录id").set({ data: { age: 18 } }).then(res=>{ console.log("更新成功", res) }).catch(err=>{ console.log("更新失败", err) }) }
//实例3:记录id不存在,会以此条id增加一条记录 onLoad: function (options) { const db = wx.cloud.database() const oras = db.collection("oras") oras.doc("记录id").set({ data: { age: 18 } }).then(res=>{ console.log("更新成功", res) }).catch(err=>{ console.log("更新失败", err) }) }
批量更新
需在 Server 端进行操作(云函数)。
方法:
-
方法1:在 where 语句后调用 update 方法
-
方法2:用for循环整条更新达到批量更新的目的:
- 缺点:性能就比较低,因为它涉及多次数据库的操作,没有方法1的性能优
实例:把age>=18的记录添加一个字段
exports.main = async (event, context) => { const db = wx.cloud.database() //拿到数据库的引用 const oras = db.collection("oras") //拿到集合的引用 const _ = db.command //数据库操作符。也就是数据库里面的一些指令 //获取多条记录 return oras.where({ age: _.gte(18) //command.gte查询筛选操作符,表示需大于或等于指定值 }).update({ data: { adult: true } }) }
指令
set 设置字段为指定值 -->用于控制字段值是一个对象,想修改对象内的某个key remove 删除字段 inc 原子自增字段值 mul 原子自乘字段值 push 如字段值为数组,往数组尾部增加指定值 pop 如字段值为数组,从数组尾部删除一个元素 shift 如字段值为数组,从数组头部删除一个元素 unshift 如字段值为数组,往数组头部增加指定值
实例:
db.command.ind() 自增指令
//小程序端 func(){ const db = wx.cloud.database() //拿到数据库的引用 const oras = db.collection("oras") //拿到集合的引用 oras.doc("记录id").set({ data: { age: db.command.inc(1) //自增1 age++ } }).then(res=>{ console.log("yes") }).catch(err=>{ console.log("no") }) } //db.command.ind()仅适用于局部更新,用set就不行
db.command.mul() 自乘指令
oras.doc("记录id").set({ data: { age: db.command.mul(10) //age*10 } }).then(res=>{ console.log("yes") }).catch(err=>{ console.log("no") })
db.command.push()
//要求:往[1, 2]数组里面追加一个3 //第一步:新增字段tags oras.doc("记录id").set({ data: { tags: [1, 2] } }).then(res=>{ console.log("yes") }).catch(err=>{ console.log("no") }) //第二部:追加3 oras.doc("记录id").set({ data: { tags: db.command.push(3) } }).then(res=>{ console.log("yes") }).catch(err=>{ console.log("no") })
智一面gtalent提供超多的web前端工程师小程序开发的笔试题
这篇关于微信小程序云开发(四)数据库-改的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-302024年最新版云开发cms开通步骤,开始开发微信小程序前的准备工作,认真看完奥!
- 2024-03-30微信小程序的网络设置,及网络请求:wx.request(OBJECT)
- 2024-01-22基于taro搭建小程序多项目框架
- 2024-01-13小程序开发:在插件市场寻找步骤条组件并二开
- 2024-01-05钉钉小程序生态—企业机器人加互动卡片,改善用户体验的开始!
- 2023-12-29【UniApp】-uni-app-打包成小程序
- 2023-12-26性能翻倍!京东亿级体量小程序优化实践
- 2023-12-25小程序优化:第三方SDK过大解决方案
- 2023-11-26微信小程序文件预览和下载-文件系统
- 2023-11-2652天学习微信小程序计划No.2:注册小程序账号&安装开发者工具