当前位置: 首页 > news >正文

MongoDB自学笔记(三)

一、前文回顾

上一篇文章中我们学习了更新操作,以及讲解了部分的更新操作符,今天我们继续学习剩余的更新操作符。

二、更新操作符

1、$rename

语法:{ $rename: { < field1 >: < newName1 >, < field2 >: < newName2 >, … } }
含义:用于修改字段名称,类似于MySQL中DDL

示例1:例如我们要将库存集合(inventory)中的 qyt字段名称改成 quantity
db.inventory.updateMany({}, {$rename :{"qty":"quantity"}})

运行结果:
image.png
image.png
当然这里也可以只给一条文档修改字段名。

示例2:给修改嵌套文档的字段名

例如我们size文档下的h名称改为 height
image.png

db.inventory.updateMany({}, {$rename :{"size.h":"size.hight"}})

运行结果:
image.png
image.png

示例3:将内嵌文档中的字段移到文档外部

例如我们想把size下的uom字段移动到内嵌元素的外部,我们也可以使用rename命令

db.inventory.updateMany({}, {$rename :{"size.uom":"uom"}})

运行结果:
image.png
image.png

注意点:rename不适用于不适用于数组中的嵌入式文档

2、$set

语法:{ $set: { < field1 >: < value1 >, … } }
含义:设置文档中字段的值,就类似于Mysql中的 update table set = xxxx

示示1:将ID=66951edbdf24000083007d74 的文档的quantity设置为100
db.inventory.updateOne({"_id":ObjectId("66951edbdf24000083007d74")},{ $set:{"quantity":100}  })

运行结果:
image.png
image.png

示例2:set一个不存在的字段值

例如我给ID为66951edbdf24000083007d74的元素添加一个字段价格 Price,为200,此时也可以用set

db.inventory.updateOne({"_id":ObjectId("66951edbdf24000083007d74")},{ $set:{"price":200}  })

运行结果
image.png
image.png

同理如果要设置嵌套文档,则使用 “点符号”,这里不在赘述。

3、$unset

语法:{ $unset: { < field1 >: “”, … } }
含义:删除特定字段。

示例1:我想删除66951edbdf24000083007d74的文档的price字段
db.inventory.updateOne({"_id":ObjectId("66951edbdf24000083007d74")},{ $unset:{"price":""} })

运行结果:
image.png
image.png同理如果是嵌套文档则需要用“点符号。

三、结束语

Mongo中还有许多的操作符,这里不在一一赘述,一切要以官网为准,这里贴上官网的地址:https://www.mongodb.com/zh-cn/docs/manual/reference/operator/update/#std-label-update-operators。
希望对你有所帮助

未完待续

相关文章:

MongoDB自学笔记(三)

一、前文回顾 上一篇文章中我们学习了更新操作&#xff0c;以及讲解了部分的更新操作符&#xff0c;今天我们继续学习剩余的更新操作符。 二、更新操作符 1、$rename 语法&#xff1a;{ $rename: { < field1 >: < newName1 >, < field2 >: < newName2…...

编程中的智慧之设计模式三

深入探索设计模式&#xff1a;实际应用和优化策略 在前两篇文章中&#xff0c;我们详细探讨了创建型模式、结构型模式、行为模式和架构模式的基本概念及其在Java中的实现。在本文中&#xff0c;我们将进一步探讨如何在实际项目中应用和优化这些模式&#xff0c;尤其是如何在大…...

《YOLOv10改进实战专栏》专栏介绍 专栏目录

《YOLOv10改进实战专栏》介绍及目录 YOLOv10官方仓库地址 专栏地址&#xff1a;点击跳转 专栏导航如下&#xff1a; &#x1f380;基础入门篇&#x1f380; 万字长文&#xff0c;小白新手怎么开始做YOLO实验&#xff0c;从零开始教&#xff01;整体思路在这里&#xff0c;科研指…...

Python酷库之旅-第三方库Pandas(030)

目录 一、用法精讲 79、pandas.Series.dtype属性 79-1、语法 79-2、参数 79-3、功能 79-4、返回值 79-5、说明 79-6、用法 79-6-1、数据准备 79-6-2、代码示例 79-6-3、结果输出 80、pandas.Series.shape属性 80-1、语法 80-2、参数 80-3、功能 80-4、返回值 …...

神经网络中的激活函数举例,它们各自的特点,以及哪个激活函数效果更好,为什么

sigmoid&#xff1a; \(\sigma(x)1/(1e^{-x})\)&#xff1b; 优&#xff1a;将数值压缩到 0 1&#xff0c;导数为 \(\sigma(x)(1-\sigma(x))\) 好算。劣&#xff1a;输出均值非0&#xff08;0.5&#xff09;&#xff0c;梯度消失&#xff08;Gradient vanishing&#xff09;每次…...

【树莓派3B+】控制引脚输出高低电平

前言一、安装RPI.GPIO库二、编写简单的输出高低电平的程序三、运行程序总结 前言 首先检查一下自己的板子有没有带库 我这个是有的。 ok&#xff0c;正式进入步骤 一、安装RPI.GPIO库 如果还没有安装RPi.GPIO库&#xff0c;可以通过以下命令在树莓派上安装&#xff1a; p…...

【Redis7】高阶篇

1 Redis单线程 VS 多线程(入门篇) 1.1 面试题 redis到底是单线程还是多线程&#xff1f; IO多路复用听说过吗&#xff1f; redis为什么快&#xff1f; 1.2 Redis为什么选择单线程&#xff1f; 1.2.1 是什么 这种问法其实并不严谨&#xff0c;为啥这么说呢? Redis的版本…...

在学习使用LabVIEW的过程中,需要注意哪些问题?

在学习使用LabVIEW的过程中&#xff0c;需要注意以下问题&#xff1a; 1. 基础知识 图形化编程思维&#xff1a; LabVIEW采用图形化编程方式&#xff0c;与传统的文本编程语言有很大不同&#xff0c;需要适应这种新的编程思维方式。数据流概念&#xff1a; 理解LabVIEW的核心数…...

网络编程-TCP/IP

网络概述 网络采用分而治之的方法设计&#xff0c;将网络的功能划分为不同的模块&#xff0c;以分层的形式有机组合在一起。 每层实现不同的功能&#xff0c;其内部实现方法对外部其他层次来说是透明的。每层向上层提供服务&#xff0c;同时使用下层提供的服务 网络体系结构…...

php在服务器上部署可视化运维工具详细列表

如果你的项目很小&#xff0c;可以用宝塔。但对于并发大的服务器管理&#xff0c;选择适合的工具非常重要。 目录 以下是一些免费且适合高并发管理的服务器管理工具推荐&#xff1a; 1Panel&#xff1a; Portainer&#xff1a; Webmin&#xff1a; Cockpit&#xff1a; …...

Linux中的文件夹作用

在Linux系统中&#xff0c;每个目录都有其特定的用途&#xff0c;下面我用大白话来解释一下各个主要目录的作用&#xff1a; / (根目录)&#xff1a;这是Linux文件系统的起点&#xff0c;所有其他目录都是从这里延伸出去的。你可以把它想象成你家里的门厅&#xff0c;所有房间的…...

【C++】C++中的assign函数详解

目录 一.assign函数是什么 二.assign函数怎么用 一.assign函数是什么 在C中&#xff0c; assign 是 std::string 类的一个成员函数&#xff0c;用于给字符串对象赋值&#xff0c;可以替换字符串对象中的内容为另一个字符串或字符串的一部分。 std::string 的 assign 函…...

Hadoop3:MR程序的数据倾斜问题处理

一、数据倾斜 什么是数据倾斜&#xff1f; 学过Redis集群的都知道数据倾斜这个问题。 就是大量数据&#xff0c;分配不均匀的现象。 二、MR数据倾斜 1、怎么判断出现数据倾斜&#xff1f; 数据频率倾斜——某一个区域的数据量要远远大于其他区域。 数据大小倾斜——部分记…...

Mojo 编程语言简介

Mojo 是一种新兴的编程语言&#xff0c;旨在结合 Python 的易用性与 C 的高性能&#xff0c;特别是面向高性能计算、机器学习和系统编程等领域。Mojo 的设计目标是提供一种既具备高级语言灵活性&#xff0c;又能够高效运行的编程工具。 主要特性 高性能&#xff1a;通过高级编…...

【有效验证】解决SQLyog连接MYSQL的错误 1251 - Client does not support

目录 一、原因分析&#xff1a; 二、进入到mysql 三、查看当前加密方式 四、更改加密方式 五、查看是否成功 前言&#xff1a;使用一个开源软件使用sqlyog、navcat都报1251错误&#xff0c;网上都是提示升级客户端&#xff0c;还有一种就是修改mysql配置。本文就是修改配置…...

Keka for Mac v1.4.3 中文下载 解压/压缩工具

Mac分享吧 文章目录 效果一、下载软件二、开始安装1、双击运行软件&#xff0c;将其从左侧拖入右侧文件夹中&#xff0c;等待安装完毕2、应用程序显示软件图标&#xff0c;表示安装成功 三、运行测试1、打开软件2、文件访问权限修改3、访达扩展 安装完成&#xff01;&#xff…...

springboot3.2 RedisCacheManager配置

1、启用并配置 添加 EnableCaching 注解 并配置 RedisCacheManager package config;import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.PropertyAccessor; import c…...

IP地址与MAC地址区别

MAC地址和IP地址是现代计算机网络中两个非常重要的概念&#xff0c;它们各自承担着不同的角色和功能。 MAC地址&#xff08;Media Access Control Address&#xff09; 一种物理地址&#xff0c;它是烧录在网卡或接口上的&#xff0c;具有全球唯一性&#xff0c;一般不能被改…...

Linux chmod 命令简介

在Linux中&#xff0c;chmod 命令用于改变文件或文件夹的访问权限。要改变一个文件夹及其内部所有文件和子文件夹的权限&#xff0c;您可以使用递归选项 -R。以下是一些常用的 chmod 命令示例&#xff1a; 给所有用户读、写和执行权限&#xff1a; chmod -R 777 /path/to/direc…...

【LeetCode】删除排序链表中的重复元素 II

目录 一、题目二、解法完整代码 一、题目 给定一个已排序的链表的头 head &#xff0c; 删除原始链表中所有重复数字的节点&#xff0c;只留下不同的数字 。返回 已排序的链表 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,3,4,4,5] 输出&#xff1a;[1,2,5] 示例 …...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

Pinocchio 库详解及其在足式机器人上的应用

Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库&#xff0c;专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性&#xff0c;并提供了一个通用的框架&…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)

RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发&#xff0c;后来由Pivotal Software Inc.&#xff08;现为VMware子公司&#xff09;接管。RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用 Erlang 语言编写。广泛应用于各种分布…...

DingDing机器人群消息推送

文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人&#xff0c;点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置&#xff0c;详见说明文档 成功后&#xff0c;记录Webhook 2 API文档说明 点击设置说明 查看自…...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时&#xff0c;显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...

使用SSE解决获取状态不一致问题

使用SSE解决获取状态不一致问题 1. 问题描述2. SSE介绍2.1 SSE 的工作原理2.2 SSE 的事件格式规范2.3 SSE与其他技术对比2.4 SSE 的优缺点 3. 实战代码 1. 问题描述 目前做的一个功能是上传多个文件&#xff0c;这个上传文件是整体功能的一部分&#xff0c;文件在上传的过程中…...