node.js,在Azure Cosmos DB中批量删除数据

news/2025/3/21 9:41:44/文章来源:https://www.cnblogs.com/celestiial/p/18231167

1.删除数据操作:

对于数据,不做逻辑删除,仅作标记删除,即将数据的isDelete属性置为true,因此删除数据实际上是修改数据。

某个item如图

const item = await container.item(id, partitionKey).read() // 根据id和partitionKey读取数据
let Item = item.resource //获取数据所有属性
Item.isDelete = "true" // 将isDelete字段设置为true,标记删除
const { resource: replacedItem } = await container.item(id).replace(Item) //更新原数据

2.批量操作

  • V3版本及更新的SDK:

使用Container.items.bulk()方法进行批量操作

const { resources: items } = await container.items.query(querySpec).fetchAll(); // 根据条件查询所有符合的数据
const operations = items.map(item => {return {operationType: 'Replace',partitionKey: item.partitionKey,resourceBody: {id: item.id,...item, // 保持原有属性不变或添加或修改你想要的属性isDelete: "true" //标记删除}};
});// 执行批量操作
const { result } = await container.items.bulk(operations)
  • V3之前较旧版本的SDK:

旧版本中不存在Container.items.bulk()方法,获取到所有items后,需要对这些items分别进行修改。可以使用循环,但如果数据量较大,循环耗时太多,所以选择使用promise.all()方法并发操作。

const { resources: items } = await container.items.query(querySpec).fetchAll(); // 根据条件查询所有符合的数据
const promises = items.map(async (item) => {item.isDelte = "true"; // 标记删除return container.item(item.id).replace(item);
});
// 使用Promise.all并发执行所有的替换操作
await Promise.all(promises);

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

配置枚举处理器

在application.yaml文件中添加配置: mybatis-plus:configuration:default-enum-type-handler: com.baomidou.mybatisplus.core.handlers.MybatisEnumTypeHandler 测试 @Test void testService() {List<User> list = userService.list();list.forEach(System.out::printl…

Error running ‘Application’Command line is too long

按照网上的说法 需要一个一个修改测试方法 或者 应用,比较麻烦 !!!!! 这里介绍一个一次设置的方法 第一步 2第二步3第三部 把这两个都修改下 应该就OK了

免费的项目管理系统哪个好?2024年值得关注的6大项目管理系统

对于预算有限的小企业和创业公司来说,免费的项目管理系统不仅可以帮助节省成本,还能提高工作效率。本文将分享2024年值得关注的6大项目管理系统:PingCode、Worktile、Asana、Trello、Jira、Monday.com。对于预算有限的小企业和创业公司来说,免费的项目管理系统不仅可以帮助…

java什么时候声明static方法

声明为static的方法有以下典型使用场景工具方法(Utility Methods):当你有一个方法不需访问对象状态,即不需要访问类的非静态成员变量,那么这个方法可以声明为static。这样,你无需创建类的实例就可以通过类名直接调用该方法。很多工具类如Math, Arrays, Collections中的方…

2024年9大主流提效个人项目管理工具分享

本文将介绍市场上几款受欢迎的个人项目管理软件,帮助你选择适合自己需求的最佳工具。本文将分享9大主流提效个人项目管理工具:PingCode、Worktile、Smartsheet、Celoxis、Wrike、QuickBase、Miro、FigJam、Nifty。个人项目管理软件作为提高生产力、组织任务和跟踪进度的强大工…

璞华科技获《数据产品登记证书》,璞华易表入数据资产运营市场

根据地方政策、深入地方市场、为地方客户提供专业的数据资产入表、数据资产运营管理服务!随着数字经济时代的飞速发展,数据要素在社会经济中的地位也变得越来越重要,成为超越传统土地、劳动力、技术和资金的新型关键资源,被誉为“第五要素”。这一变化不仅凸显了数据在当今…

进制转换

void decToBinary(int decimal) {int binary[32];int cnt = 0;while (decimal > 0){binary[cnt] = decimal % 2; // 取模放在低位decimal = decimal / 2; // 更新参数cnt++;}printf("Binary equivalent: ");for (int i = cnt - 1; i >= 0; i--) // 逆向输出…

Linux 提权-内核利用

本文通过 Google 翻译 Kernel Exploits – Linux Privilege Escalation 这篇文章所产生,本人仅是对机器翻译中部分表达别扭的字词进行了校正及个别注释补充。导航0 前言 1 内核简介 2 寻找内核漏洞2.1 发现内核版本 2.2 手动查找内核漏洞2.2.1 通过 Google 查找内核漏洞 2.2.2…

配置逻辑删除

对于一些比较重要的数据,我们往往会采用逻辑删除的方案,即:在表中添加一个字段标记数据是否被删除 当删除数据时把标记置为true 查询时过滤掉标记为true的数据一旦采用了逻辑删除,所有的查询和删除逻辑都要跟着变化,非常麻烦。为了解决这个问题,MybatisPlus就添加了对逻辑…

Spring Boot自动装配bean到IOC容器的实现

前言Spring Boot能帮助我们Java开发者快速开发基于Spring框架的应用,除了其作为依赖管理好帮手的一众Spring-Boot-Starter之外,其自动装配(Auto Configure)特性也起到了非常重要的作用。那么Spring Boot是如何实现自动装配的呢?本文将结合源码去讲解其原理。 版本信息spri…

有哪些免费方法可以将PDF转成PPT?

有时候我们在制作文件时,新建的PPT文档是空白页比较单调,会去网上下载一些模板,而下载后的文档多是PDF格式,必须转换为PPT格式,以便使用自己的文档。所以pdf转ppt怎么转换免费呢?下面一起来看看pdf转ppt这些方法吧。 方法一、修改文件拓展名 小伙伴们平时打开文件的时候,…

idea打包运行后显示,没有主清单属性

一、问题现象idea打包成jar包,运行后显示,没有主清单属性!二、问题分析主要原因如下:1. 缺少了项目maven打包插件 spring-boot-maven-plugin。2. 没有指定具体的项目的Main方法入口或启动类。三、解决方法 (一)方法1 1、查看项目打包的pom.xml文件中,并添加配置如下:&l…