unicloud update 修改

update 修改

使用腾讯云时更新方法必须搭配doc、where方法使用,db.collection(‘test’).update()会报如下错误:param should have required property ‘query’

collection.doc().update(Object data)

未使用set、remove更新操作符的情况下,此方法不会删除字段,仅将更新数据和已有数据合并。

其中,data参数是需要更新对象的属性对象,更新成功后返回更新成功条数,数据更新前后没变化时会返回0

准备环境

云数据库中users表内数据
在这里插入图片描述

新建cloudUpdate 云函数函数
在这里插入图片描述

update 简单示例

示例:将猪八戒的年龄改为两千岁
在这里插入图片描述
示例代码如下

云函数代码

'use strict';
const db =uniCloud.database()
exports.main = async (event, context) => {
	//返回数据给客户端
	return await db.collection('users').where({name:'猪八戒'}).update({age:2000})
};

js引用代码

const update = async _=>{
	const result = await uniCloud.callFunction({name:'cloudUpdate'})
	console.log(result)
}

输出结果如下
在这里插入图片描述
云数据库如下图
八戒变成了两千岁了
在这里插入图片描述

更新数组

示例:给猪八戒添加添加爱好[吃,喝,玩,乐,嫦娥]

示例代码如下
云函数代码

'use strict';
const db =uniCloud.database()
exports.main = async (event, context) => {
	//返回数据给客户端
	// return await db.collection('users').where({name:'猪八戒'}).update({age:2000})
	return await db.collection('users').where({name:'猪八戒'}).update({hobby:['吃','喝','玩','乐','嫦娥']})
};

输出结果如下
在这里插入图片描述
云数据修改结果如下
在这里插入图片描述

修改数组内一个值

tips

更新数组时,已数组下标作为key即可,比如以下示例将数组arr内下标为1的值修改为 uniCloud

示例要求:将猪八戒的乐改成给猴子打小报告

云函数示例代码如下

'use strict';
const db =uniCloud.database()
exports.main = async (event, context) => {
	//返回数据给客户端
	// return await db.collection('users').where({name:'猪八戒'}).update({age:2000})
	// return await db.collection('users').where({name:'猪八戒'}).update({hobby:['吃','喝','玩','乐','嫦娥']})
	return await db.collection('users').where({name:'猪八戒'}).update({hobby:{3:'给猴子打小报告'}})
};

输出结果如下
在这里插入图片描述
云数据库修改如下
在这里插入图片描述

使用set更新文档,如果不存在则创建

collection.doc().set()

示例 更新ggbond的爱好,将他的爱好设置为吃棒棒糖和上菲菲公主,但是要将描述删除(inter)
在这里插入图片描述
示例云函数代码如下

'use strict';
const db =uniCloud.database()
exports.main = async (event, context) => {
	return await db.collection('users').where({name:'ggbond'}).set({
		name:'ggbond',
		age:38,
		email:'ggbond@email.com',
		hobby:['吃棒棒糖','菲菲公主']
	})
};

输出如下
在这里插入图片描述
云数据库数据修改成如下
ps:可以看到使用set,设置数据后,没有写出的会被删除,
在这里插入图片描述

updateAndReturn 更新并返回更新后的数据

updateAndReturn接口仅会操作一条数据,有多条数据匹配的情况下会只更新匹配的第一条并返回

示例要求:给佩奇加个爱好,踩泥坑,并返回修改后的佩奇数据
在这里插入图片描述
示例代码如下

'use strict';
const db =uniCloud.database()
exports.main = async (event, context) => {
	return await db.collection('users').where({name:'佩奇'}).updateAndReturn({
		hobby:['踩泥坑']
	})
};

输出结果如下
在这里插入图片描述
tips :

  • 使用updateAndReturn时,不可使用field方法
  • 可以在事务中使用,可以使用transaction.where().updateAndReturn()以及transaction.doc().updateAndReturn()
  • 不同于update接口,此接口返回的updated不表示数据真的进行了更新
  • 腾讯云暂不支持doc().updateAndReturn()的写法可以使用where().updateAndReturn()替代

更新指令

set

更新指令。用于设定字段等于指定值。这种方法相比传入纯 JS 对象的好处是能够指定字段等于一个对象:

示例要求: 给猪八戒的添加外号

示例代码如下

'use strict';
const db =uniCloud.database()
const dbCmd = db.command
exports.main = async (event, context) => {
	return await db.collection('users').where({name:'猪八戒'}).update({
		nickname:dbCmd.set({
			nickname1:'天蓬元帅',
			nickname2:'八戒'
		})
	})
};

输出结果如下
在这里插入图片描述
云数据库更新如下
在这里插入图片描述

inc

更新指令。用于指示字段自增某个值,这是个原子操作,使用这个操作指令而不是先读数据、再加、再写回的好处是:

原子性:多个用户同时写,对数据库来说都是将字段加一,不会有后来者覆写前者的情况
减少一次请求:不需先读再写
之后的 mul 指令同理。

在文章阅读数+1、收藏+1等很多场景会用到它。如给收藏的商品数量加一:

示例要求,给猪八戒年龄增加一岁

示例代码如下

'use strict';
const db =uniCloud.database()
const dbCmd = db.command
exports.main = async (event, context) => {
	return await db.collection('users').where({name:'猪八戒'}).update({
		age:dbCmd.inc(1)
	})
};

数据库修改结果如下
在这里插入图片描述
tips: 注意请官方没有直接提供减法操作符,如果要实现减法,仍通过inc实现,如果要实现-x操作,参数改为-x即可

mul

更新指令。用于指示字段自乘某个值。

示例如下,将猪八戒的年龄乘20

示例代码如下

'use strict';
const db =uniCloud.database()
const dbCmd = db.command
exports.main = async (event, context) => {
	return await db.collection('users').where({name:'猪八戒'}).update({
		age:dbCmd.mul(20)
	})
	
};

数据库修改后如下
在这里插入图片描述
tips: 和加法一样,也是有乘法没有除法,除法就是乘法的百分之几

remove

更新指令。用于表示删除某个字段。如某人删除了自己一条商品评价中的评分:

示例要求 : 删除猪八戒的打小报告的爱好
在这里插入图片描述

示例代码如下

'use strict';
const db =uniCloud.database()
const dbCmd = db.command
exports.main = async (event, context) => {
	return await db.collection('users').where({name:'猪八戒'}).update({
		['hobby.'+3]:dbCmd.remove()
	})
};

输出如下
在这里插入图片描述

push

向数组尾部追加元素,支持传入单个元素或数组
示例要求:给猪八戒添加上 打篮球,爱旅游的爱好,再加上身高一米八五

云函数代码

'use strict';
const db =uniCloud.database()
const dbCmd = db.command
exports.main = async (event, context) => {
	return await db.collection('users').where({name:'猪八戒'}).update({
		hobby:dbCmd.push(['打篮球','爱旅游','身高一米八五'])
	})
};

数据库更改结果如下
在这里插入图片描述

pop

删除数组尾部元素
示例要求:给猪八戒的身高一米八五删了

'use strict';
const db =uniCloud.database()
const dbCmd = db.command
exports.main = async (event, context) => {
	return await db.collection('users').where({name:'猪八戒'}).update({
		hobby:dbCmd.pop()
	})
}

数据库更改如下
在这里插入图片描述

unshift

向数组头部添加元素,支持传入单个元素或数组。使用同push

shift

删除数组头部元素。使用同pop

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/462048.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络实训-2 网络设备配置基础

文章目录 一、交换机/路由器的内部组成二、接口类型及接口标识观察:交换机、路由器的外观交换机的接口标识交换机的接口标识举例 路由器的接口标识路由器的接口标识举例 三、配置交换机/路由器的方法通过Console口来配置(带外管理)通过telnet…

【vue baidu-map】实现百度地图展示基地,鼠标悬浮标注点展示详细信息

实现效果如下&#xff1a; 自用代码记录 <template><div class"map" style"position: relative;"><baidu-mapid"bjmap":scroll-wheel-zoom"true":auto-resize"true"ready"handler"><bm-mar…

XCTF:level0[WriteUP]

PWN入门题目&#xff1a;XCTF攻防世界的level0 使用file、checksec命令查看文件详细信息 这是一个64bit的ELF文件&#xff08;后面编写EXP需要用到&#xff09; 从checksec中展示的信息看&#xff0c;该二进制文件只开启了NX&#xff08;数据执行保护&#xff09; 这样的话就…

如何理解Linux文件IO?

一、文件IO的概述 1、什么是文件&#xff1f; Linux下一切皆文件。普通文件、目录文件、管道文件、套接字文件、链接文件、字符设备文件、块设备文件。 2、什么是IO&#xff1f; input output&#xff1a;输入输出 3、什么是文件IO&#xff1f; 对文件的输入输出&#xff0c;把…

Radware DDoS防护迎来重大升级,重拳出击在线游戏行业难题

日前&#xff0c;全球领先的网络安全和应用交付解决方案提供商Radware推出了多维DDoS检测和防护措施&#xff0c;以满足在线游戏行业独特复杂的需求。Radware开发了一系列新的算法来保护在线游戏免遭复杂攻击。 Radware首席运营官Gabi Malka表示&#xff1a;“在线游戏是价值数…

【海贼王的数据航海】排序——概念|直接插入排序|希尔排序

目录 1 -> 排序的概念及其运用 1.1 -> 排序的概念 1.2 -> 常见的排序算法 2 -> 插入排序 2.1 -> 基本思想 2.2 -> 直接插入排序 2.2.1 -> 代码实现 2.3 -> 希尔排序(缩小增量排序) 2.3.1 -> 代码实现 1 -> 排序的概念及其运用 1.1 -&g…

Centos7安装Clickhouse单节点部署

&#x1f388; 作者&#xff1a;互联网-小啊宇 &#x1f388; 简介&#xff1a; CSDN 运维领域创作者、阿里云专家博主。目前从事 Kubernetes运维相关工作&#xff0c;擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、开源软件部署维护…

SQLite数据库使用指南以及相关API编程

SQLite介绍 SQLite是一种基于C语言开发的轻量级、快速、自包含、高可靠性和全功能的SQL数据库引擎。它是全球范围内使用最为广泛的数据库引擎&#xff0c;被嵌入到所有移动设备和大部分计算机中&#xff0c;并且伴随着无数日常使用的应用程序一起提供。SQLite的文件格式具有稳…

免费阅读篇 | 芒果YOLOv8改进110:注意力机制GAM:用于保留信息以增强渠道空间互动

&#x1f4a1;&#x1f680;&#x1f680;&#x1f680;本博客 改进源代码改进 适用于 YOLOv8 按步骤操作运行改进后的代码即可 该专栏完整目录链接&#xff1a; 芒果YOLOv8深度改进教程 该篇博客为免费阅读内容&#xff0c;直接改进即可&#x1f680;&#x1f680;&#x1f…

论文阅读——Rein

Stronger, Fewer, & Superior: Harnessing Vision Foundation Models for Domain Generalized Semantic Segmentation 一、引言 是一个对Domain Generalized Semantic Segmentation (DGSS)任务的视觉大模型的微调方法&#xff0c;即Rein。 Rein 专为 DGSS 任务量身定制&a…

Linux操作系统裸机开发-环境搭建

一、配置SSH服务 1、下载安装ssh服务输入以下命令 sudo apt-get install nfs-kernel-server portmap2、建立一个供SSH服务使用的文件夹如以下命令 mkdir linux 3、完成前两步之后需要将其文件路径放到/etc/exports文件里输入以下命令&#xff1a; sudo vi /etc/esports 4.打…

04-java基础--流程控制语句

一、switch语句 二、循环的三种结构 流程控制语句分为三种结构&#xff1a; 顺序结构&#xff08;按代码的书写顺序执行&#xff0c;从上到下依次执行&#xff09;分支结构&#xff08;if语句、if–else语句、switch语句&#xff09;循环结构&#xff08;while、for循环、do–…

超越 GPT4,科大讯飞,再出王炸!

哈喽&#xff0c;大家好&#xff01; 去年&#xff0c;科大讯飞星火大模型上线&#xff0c;给大家推荐了一波&#xff0c;演示了其强大的功能&#xff0c;不少小伙伴都立马申请体验了一把&#xff0c;也有私信说非常强大&#xff0c;工作效率提高不少&#xff0c;支持国产大模…

PCL 高斯投影反算:高斯投影坐标转大地坐标(C++详细过程版)

目录 一、算法原理二、代码实现三、结果展示四、测试数据PCL 高斯投影反算:高斯投影坐标转大地坐标(C++详细过程版)由CSDN点云侠原创。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、算法原理

系统重构后,对项目定制开发的兼容性问题

公司自实施产品线战略以来&#xff0c;基本推翻了全部旧有业务模块。后续以标准产品二次开发的模式进行项目开发。但在涉及到一些旧有系统二期、三期升级改造过程中。不可避免的需要解决旧有系统的客户定制化开发兼容性问题。也就是旧有系统定制开发的模块不能丢弃。重新开发从…

解决游戏程序一运行就退出的问题

正文&#xff1a; 在游戏开发过程中&#xff0c;我们可能会遇到程序一运行就立即退出的情况。这种情况通常是由于程序中的某些逻辑错误或初始化问题导致的。 下面我们将分析可能的原因&#xff0c;并提供一些解决方案。 目录 正文&#xff1a; 原因分析&#xff1a; 解决方案…

LDR6328Q,快充界的黑马

Type-C接口&#xff0c;这一新型的USB接口形式&#xff0c;凭借其正反插的便捷性、传输速度的高效性&#xff0c;以及支持多种功率传输的灵活性&#xff0c;迅速在市场中崭露头角。如今&#xff0c;越来越多的厂商青睐于在小家电产品上运用Type-C接口&#xff0c;这一改变无疑极…

YOLOv9训练不中断,从断点处训练的方法

1. 训练过程中意外中断&#xff0c;未完成训练预期的epoch数量 不小心多开了一个程序&#xff0c;导致程序从98次中断了&#xff0c;想要继续从98开始训练&#xff1a; 将train_dual.py文件中的patser中参数resume&#xff0c;将其设置为defaultTrue: parser.add_argument(--…

JavaSE-----认识异常【详解】

目录 一.异常的概念与体系结构&#xff1a; 1.1异常的概念&#xff1a; 1.2一些常见的异常&#xff1a; 1.3异常的体系结构&#xff1a; 1.4异常的分类&#xff1a; 二.异常的处理机制&#xff1a; 2.1 抛出异常&#xff1a; 2.2异常的捕获&#xff1a; 2.3try-catch-&…

相机sd卡照片删除后数据恢复,相机sd卡中的照片被删除后如何恢复数据

当我们使用相机拍摄照片时&#xff0c;有时会不小心删除了一些重要的照片。这可能是因为误操作、SD卡故障或者其他原因。无论是珍贵的照片、还是重要的工作文件&#xff0c;被删除后&#xff0c;我们往往会感到焦虑和失望。相机sd卡中的照片被删除后如何恢复数据&#xff1f;幸…