《微信小程序开发从入门到实战》学习四十一

news/2024/6/17 1:58:11 标签: 学习, 微信小程序, 小程序

4.2 云开发JSON数据库

4.2.12 更新指令

update方法除了用指定值更新字段外,数据库API还提供了更新指令执行更复杂的 更新的操作,更新指令被封装在db.command对象中的函数。如下表所示:

set        设置字段为指定值

remove        删除字段

inc        原子自增字段值

mul        原子自乘字段值

push        如果字段值为数组,往数组尾部增加指定值

pop        如果字段值为数组,从数组尾部删除一个元素

shift       如果字段值为数组, 从数组头部删除一个元素

unshift       如果字段值为数组, 从数组头部增加一个元素

假设集合有这样一条记录:

{

"style": {

        "color":"red",

        "size":"large"

        }

}

使用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()

小程序端 ,用户具有写权限可以执行删除操作。


http://www.niftyadmin.cn/n/5238275.html

相关文章

Arthas安装及简单使用

一. 背景介绍 Arthas 是 Alibaba 在 2018 年 9 月开源的 Java 诊断工具。支持 JDK6, 采用命令行交互模式,提供 Tab 自动补全,可以方便的定位和诊断线上程序运行问题。得益于 Arthas 强大且丰富的功能,让 Arthas 能做很多的事情&a…

【MySQL语言汇总[DQL,DDL,DCL,DML]以及使用python连接数据库进行其他操作】

MySQL语言汇总[DQL,DDL,DCL,DML] SQL分类1.DDL:操作数据库,表创建 删除 查询 修改对数据库的操作对表的操作复制表(重点)!!!!! 2.DML:增删改表中数据3.DQL:查询表中的记录…

JDBC简介及快速入门-黑马(P1)

黑马视频b站链接: 01-JDBC简介&快速入门_哔哩哔哩_bilibili 🐶一、JDBC 简介 JDBC 概念: JDBC 就是使用 Java 语言操作关系型数据库的一套 API。 全称(Java DataBase Connectivity) Java 数据库连接 JDBC 本质…

科技云报道:AI+PaaS,中国云计算市场迎来新“变量”?

科技云报道原创。 没有小的市场,只有还没有被发现的大生意。 随着企业数字化转型的逐级深入,市场需求进一步向PaaS和SaaS层进发,使之成为公有云服务市场增长的主要动力。 根据IDC最新发布的报告显示,2022-2027五年间中国公有云…

手机传输数据到电脑该怎么操作?安卓、苹果都可以这样操作

安卓手机 你知道安卓手机传输数据到电脑的方法有哪些吗?下面我们就一起来看一看可以使用的一些方法。 采用 USB 数据线 这个方法应该是我们生活中较为常见的方法了,我们只需要使用手机的充电线,将其连接到电脑上,然后手机可能会…

CNN,DNN,RNN,GAN,RL+图像处理常规算法(未完待续)

好的,让我们先介绍一些常见的神经网络模型,然后再讨论图像处理的常规算法。 神经网络模型: 1. CNN(卷积神经网络) 原理: CNN主要用于处理图像数据。它包含卷积层、池化层和全连接层。卷积层通过卷积操作…

React创建项目

React创建项目 提前安装好nodejs再进行下面的操作,通过node -v验证是否安装 1.设置源地址 npm config set registry https://registry.npmmirror.com/2.确认源地址 npm config get registry返回如下 https://registry.npmmirror.com/3.输入命令 npx create-re…

【鸿蒙开发】第一章 简介

1 鸿蒙简介 首先我们得了解HarmoneyOS和OpenHarmoney有什么区别,下面是官方对它们的简述: HarmonyOS:鸿蒙系统(鸿蒙 OS)是一款“面向未来”、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等&#…