mongodb-批量刷新数据

 1、第一种联合删除

db.collection.aggregate([{$lookup: {from: "带刷新数据源表-test1",localField: "devCode",foreignField: "oldDevCode",as: "matching_docs"}},{$unwind: "$matching_docs"},{$set: {"devCode": "$matching_docs.newDevCode"}},{$unset: "matching_docs"},{$merge: {into: "被刷新的表-test2",on: "_id", // 或者其他唯一标识符字段whenMatched: "replace",whenNotMatched: "insert"}}
])

解释:

这是一个MongoDB的聚合查询,主要用于将`test2`集合中的数据与`test1`集合进行联接(lookup),并更新`semp_fault_active`集合中的某些字段。以下是这段聚合查询的详细解释:

1. **$lookup**:


* **from**: 指定要联接的集合,这里是`test1`。
* **localField**: 指定`test2`集合中的哪个字段用于联接,这里是`devCode`。
* **foreignField**: 指定`a_rep_dev`集合中的哪个字段用于联接,这里是`oldDevCode`。
* **as**: 指定联接后的结果存放在哪个字段中,这里是`matching_docs`。
* 结果:每个`semp_fault_active`文档都会有一个`matching_docs`字段,其中包含了与`devCode`匹配的`a_rep_dev`中的所有文档。
2. **$unwind**:


* 用于将`matching_docs`数组中的每个文档拆分为单独的文档。这意味着如果`matching_docs`中有n个文档,那么原始文档就会被拆分成n个文档。
3. **$set**:


* 用于更新`devCode`字段的值。这里,它将`devCode`的值设置为`matching_docs`数组中的`newDevCode`字段的值。
4. **$unset**:


* 用于删除`matching_docs`字段,因为我们在之后的操作中不再需要它。
5. **$merge**:


* 这是一个非常有用的操作,它允许你将聚合的结果合并回一个集合。
* **into**: 指定要合并到的集合,这里是`semp_fault_active`。
* **on**: 指定用于匹配的唯一标识符字段,这里是`_id`。这意味着,如果`semp_fault_active`中已经有一个文档具有相同的`_id`,那么该文档将被更新(根据`whenMatched`参数)。
* **whenMatched**: 指定当文档在目标集合中存在时应该如何处理。这里,选择的是“replace”,意味着匹配到的文档将被替换为聚合的结果。
* **whenNotMatched**: 指定当文档在目标集合中不存在时应该如何处理。这里,选择的是“insert”,意味着非匹配的文档将被插入到目标集合中。

总之,这段聚合查询的主要目的是将`semp_fault_active`集合中的`devCode`字段更新为`a_rep_dev`集合中相应的`newDevCode`字段的值,并将结果合并回`semp_fault_active`集合。如果`_id`字段在`semp_fault_active`集合中已经存在,则替换该文档;如果不存在,则插入新文档。

2、第二种:单表批量删除

db.tableName.deleteMany({ "orderCode": { $in: ['DW-1401-20240329-5124678656000',
'DW-1409-20240329-6089991168000',
'DW-1410-20240327-6157379584000',
'DW-1410-20240327-5389821952000',
'DW-1410-20240327-4504823808000'
] } })

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

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

相关文章

N7552A是德科技N7552A电子校准件

181/2461/8938产品概述: 更小巧轻便的 2 端口模块,支持 3.5 mm 或 N 型 50 Ω 连接器,能够将校准时间缩短一半 特点 频率范围:直流至 9 GHz 使用 N 型或 3.5 mm 连接器 更小巧轻便的 2 端口电子校准件(ECal&#xff…

leetcode 2466.统计构造好字符串的方案数

思路:dp 其实这道题总的来说,就是爬楼梯问题,大家可以转化一下,并且发现一下爬楼梯问题的规律。 爬楼梯问题,基本上题目的状态只有两个,并且是固定的(不排除有变形的爬楼梯题目)&a…

【JVM】类加载机制

类加载的生命周期 类加载过程:加载->连接->初始化。连接过程又可分为三步:验证->准备->解析。 总结: 五个阶段:加载、验证、准备、解析、初始化 PS:其中解析阶段在某些情况下可以在初始化阶段之后开始。…

Nacos扩展:使用nacos实现自定义文本配置的实时刷新

文章目录 一、背景二、编码1、spring.factories2、NacosPropertiesLoader3、NacosConfigHandler4、NacosLoaderConfiguration5、测试类6、扩展 一、背景 我们都知道,使用Nacos时,如果将Bean使用RefreshScope标注之后,这个Bean中的配置就会做…

数仓分层——ODS、DW、ADS

一、什么是数仓分层 数据仓库分层是一种组织和管理数据仓库的结构化方法,它将数据仓库划分为不同的层次或级别,每个层次具有特定的功能和目的。这种分层方法有助于管理数据仓库中的数据流程、数据处理和数据访问,并提供一种清晰的结构来支持…

java接受入参是xml格式参数demo

java接受入参是xml格式参数demo 依赖demo1. xml入参定义2.接口定义3. postman请求4. 结果 注解说明 依赖 pom依赖 jackson-dataformat-xml <dependency><groupId>com.fasterxml.jackson.dataformat</groupId><artifactId>jackson-dataformat-xml</…

Python实现txt转Excel(坐标)

import pandas as pddef txt_to_excel(txt_file, excel_file):# 读取 txt 文件with open(txt_file, r) as f:lines f.readlines()# 将每行数据分割成多个单元格data []for line in lines:row line.strip().split( )data.append(row)# 将数据保存到 Excel 文件df pd.DataFra…

EPAI手绘建模APP数值几何变换

(10) 数值几何变换 图 257 数值几何变换工具栏 ① 数值几何变换和交互式几何变换都包括移动、旋转、缩放模型。但是交互式几何变换变换时的变换轴是模型自身中心为变换中心&#xff0c;以X、Y、Z方向的为变换方向&#xff0c;而数值几何变换可以指定变换中心和变换方向。另外&a…

HashSet和TreeSet的区别是什么?

HashSet和TreeSet的区别是什么&#xff1f; HashSet和TreeSet是Java集合框架中两种常用的Set实现&#xff0c;它们各自有独特的特点和用途。以下是它们之间的主要区别&#xff1a; 存储顺序&#xff1a; HashSet&#xff1a;不保证元素的存储顺序&#xff0c;也不保证元素的…

(超简单)SpringBoot中简单用工厂模式来实现

简单讲述业务需求 业务需要根据不同的类型返回不同的用户列表&#xff0c;比如按角色查询用户列表、按机构查询用户列表&#xff0c;用户信息需要从数据库中查询&#xff0c;因为不同的类型查询的逻辑不相同&#xff0c;因此简单用工厂模式来设计一下&#xff1b; 首先新建一个…

花的花语和传说

花的花语和传说往往紧密相连&#xff0c;它们共同构成了花卉文化的丰富内涵。以下是一些常见花卉的花语和传说&#xff1a; 玫瑰&#xff1a; 花语&#xff1a;爱情、美丽、和平、友谊、勇敢、献身。传说&#xff1a;古希腊和古罗马神话中&#xff0c;玫瑰与美神阿芙洛狄忒&…

数据结构-线性表-应用题-2.2-12

1&#xff09;算法的基本设计思想&#xff1a;依次扫描数组的每一个元素&#xff0c;将第一个遇到的整数num保存到c中&#xff0c;count记为1&#xff0c;若遇到的下一个整数还是等于num,count,否则count--,当计数减到0时&#xff0c;将遇到的下一个整数保存到c中&#xff0c;计…

Hadoop快速搭建指南

# Hadoop快速搭建指南## 前言 作为一个处理大数据的工具&#xff0c;Hadoop已经成为许多企业进行数据处理和分析的首选。但如果你第一次接触它&#xff0c;设置和配置可能看起来有点棘手。因此&#xff0c;我将为你提供一个详细的指南&#xff0c;让你可以快速搭建并运行Hadoop…

328_C++_HTTP_HTTP协议传输data数据,为什么要进行base64编解码操作?

http传输data数据的时候&#xff0c;为什么必须进行base64转码后才能有效发送&#xff0c;接收方也必须base64转码后才能有效接受&#xff1f; HTTP  HTTP传输数据时&#xff0c;使用Base64编码并不是必须的&#xff0c;但它确实在某些情况下非常有用。以下是为什么在某些情况…

CSS引用

CSS定义 层叠样式表&#xff1a;&#xff08;Cascading Style Sheets,缩写为css&#xff09;,是一种样式表语言&#xff0c;用来描述HTML文档的呈现&#xff08;美化内容&#xff09; 书写位置&#xff1a;title标签下方添加style双标签&#xff0c;style标签里写入CSS代码 在s…

《构建高效的财务管理系统:设计与实现》

在当今数字化时代&#xff0c;企业财务管理系统的设计与实现至关重要。一个高效的财务管理系统不仅能够提高企业的运营效率&#xff0c;还能够增强企业的竞争力&#xff0c;为企业的发展提供有力支持。本文将探讨财务管理系统的设计与实现&#xff0c;为企业打造一套符合自身需…

电脑(爱好者) :基础知识1 了解你的电脑

读懂cpu 您想了解关于您的电脑的信息吗&#xff1f;CPuz是一款常用的系统信息工具&#xff0c;可以提供关于CPU、主板、内存等硬件信息的详细情况。您可以下载并运行该软件&#xff0c;然后查看您的电脑硬件配置信息。 图片来源于网络 CPU-Z 简介 CPU-Z 是一款功能强大且易于使…

设计模式——工厂模式(Factory)

工厂模式&#xff08;Factory Pattern&#xff09;是一种常用的设计模式&#xff0c;它提供了一种封装创建对象过程的方法。通过工厂方法或工厂类&#xff0c;你可以将对象的创建与使用分离&#xff0c;使得代码更加灵活和可维护。工厂模式主要分为三种类型&#xff1a;简单工厂…

Python-VBA函数之旅-range函数

目录 一、range函数的常见应用场景 二、range函数使用注意事项 三、如何用好range函数&#xff1f; 1、range函数&#xff1a; 1-1、Python&#xff1a; 1-2、VBA&#xff1a; 2、推荐阅读&#xff1a; 个人主页&#xff1a;https://blog.csdn.net/ygb_1024?spm1010.2…

Android OpenMAX(三)高通OMX组件实现基础

上一节了解了OMX组件实现的基础内容,这一节我们以高通OMX实现为例,简单看看如何实现一个OMX组件。本节代码参考自: omx_core_cmp.cpp qc_omx_component.h omx_vdec.h omx_vdec.cpp Tips:本篇文章旨在简单了解如何实现一个OMX组件,细节的内容不会仔细解读,代码阅读跳跃幅度…