MongoDB自学笔记(三)
一、前文回顾
上一篇文章中我们学习了更新操作,以及讲解了部分的更新操作符,今天我们继续学习剩余的更新操作符。
二、更新操作符
1、$rename
语法:{ $rename: { < field1 >: < newName1 >, < field2 >: < newName2 >, … } }
含义:用于修改字段名称,类似于MySQL中DDL
示例1:例如我们要将库存集合(inventory)中的 qyt字段名称改成 quantity
db.inventory.updateMany({}, {$rename :{"qty":"quantity"}})
运行结果:


当然这里也可以只给一条文档修改字段名。
示例2:给修改嵌套文档的字段名
例如我们size文档下的h名称改为 height

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


示例3:将内嵌文档中的字段移到文档外部
例如我们想把size下的uom字段移动到内嵌元素的外部,我们也可以使用rename命令
db.inventory.updateMany({}, {$rename :{"size.uom":"uom"}})
运行结果:


注意点: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} })
运行结果:


示例2:set一个不存在的字段值
例如我给ID为66951edbdf24000083007d74的元素添加一个字段价格 Price,为200,此时也可以用set
db.inventory.updateOne({"_id":ObjectId("66951edbdf24000083007d74")},{ $set:{"price":200} })
运行结果


同理如果要设置嵌套文档,则使用 “点符号”,这里不在赘述。
3、$unset
语法:{ $unset: { < field1 >: “”, … } }
含义:删除特定字段。
示例1:我想删除66951edbdf24000083007d74的文档的price字段
db.inventory.updateOne({"_id":ObjectId("66951edbdf24000083007d74")},{ $unset:{"price":""} })
运行结果:

同理如果是嵌套文档则需要用“点符号。
三、结束语
Mongo中还有许多的操作符,这里不在一一赘述,一切要以官网为准,这里贴上官网的地址:https://www.mongodb.com/zh-cn/docs/manual/reference/operator/update/#std-label-update-operators。
希望对你有所帮助
未完待续
相关文章:
MongoDB自学笔记(三)
一、前文回顾 上一篇文章中我们学习了更新操作,以及讲解了部分的更新操作符,今天我们继续学习剩余的更新操作符。 二、更新操作符 1、$rename 语法:{ $rename: { < field1 >: < newName1 >, < field2 >: < newName2…...
编程中的智慧之设计模式三
深入探索设计模式:实际应用和优化策略 在前两篇文章中,我们详细探讨了创建型模式、结构型模式、行为模式和架构模式的基本概念及其在Java中的实现。在本文中,我们将进一步探讨如何在实际项目中应用和优化这些模式,尤其是如何在大…...
《YOLOv10改进实战专栏》专栏介绍 专栏目录
《YOLOv10改进实战专栏》介绍及目录 YOLOv10官方仓库地址 专栏地址:点击跳转 专栏导航如下: 🎀基础入门篇🎀 万字长文,小白新手怎么开始做YOLO实验,从零开始教!整体思路在这里,科研指…...
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: \(\sigma(x)1/(1e^{-x})\); 优:将数值压缩到 0 1,导数为 \(\sigma(x)(1-\sigma(x))\) 好算。劣:输出均值非0(0.5),梯度消失(Gradient vanishing)每次…...
【树莓派3B+】控制引脚输出高低电平
前言一、安装RPI.GPIO库二、编写简单的输出高低电平的程序三、运行程序总结 前言 首先检查一下自己的板子有没有带库 我这个是有的。 ok,正式进入步骤 一、安装RPI.GPIO库 如果还没有安装RPi.GPIO库,可以通过以下命令在树莓派上安装: p…...
【Redis7】高阶篇
1 Redis单线程 VS 多线程(入门篇) 1.1 面试题 redis到底是单线程还是多线程? IO多路复用听说过吗? redis为什么快? 1.2 Redis为什么选择单线程? 1.2.1 是什么 这种问法其实并不严谨,为啥这么说呢? Redis的版本…...
在学习使用LabVIEW的过程中,需要注意哪些问题?
在学习使用LabVIEW的过程中,需要注意以下问题: 1. 基础知识 图形化编程思维: LabVIEW采用图形化编程方式,与传统的文本编程语言有很大不同,需要适应这种新的编程思维方式。数据流概念: 理解LabVIEW的核心数…...
网络编程-TCP/IP
网络概述 网络采用分而治之的方法设计,将网络的功能划分为不同的模块,以分层的形式有机组合在一起。 每层实现不同的功能,其内部实现方法对外部其他层次来说是透明的。每层向上层提供服务,同时使用下层提供的服务 网络体系结构…...
php在服务器上部署可视化运维工具详细列表
如果你的项目很小,可以用宝塔。但对于并发大的服务器管理,选择适合的工具非常重要。 目录 以下是一些免费且适合高并发管理的服务器管理工具推荐: 1Panel: Portainer: Webmin: Cockpit: …...
Linux中的文件夹作用
在Linux系统中,每个目录都有其特定的用途,下面我用大白话来解释一下各个主要目录的作用: / (根目录):这是Linux文件系统的起点,所有其他目录都是从这里延伸出去的。你可以把它想象成你家里的门厅,所有房间的…...
【C++】C++中的assign函数详解
目录 一.assign函数是什么 二.assign函数怎么用 一.assign函数是什么 在C中, assign 是 std::string 类的一个成员函数,用于给字符串对象赋值,可以替换字符串对象中的内容为另一个字符串或字符串的一部分。 std::string 的 assign 函…...
Hadoop3:MR程序的数据倾斜问题处理
一、数据倾斜 什么是数据倾斜? 学过Redis集群的都知道数据倾斜这个问题。 就是大量数据,分配不均匀的现象。 二、MR数据倾斜 1、怎么判断出现数据倾斜? 数据频率倾斜——某一个区域的数据量要远远大于其他区域。 数据大小倾斜——部分记…...
Mojo 编程语言简介
Mojo 是一种新兴的编程语言,旨在结合 Python 的易用性与 C 的高性能,特别是面向高性能计算、机器学习和系统编程等领域。Mojo 的设计目标是提供一种既具备高级语言灵活性,又能够高效运行的编程工具。 主要特性 高性能:通过高级编…...
【有效验证】解决SQLyog连接MYSQL的错误 1251 - Client does not support
目录 一、原因分析: 二、进入到mysql 三、查看当前加密方式 四、更改加密方式 五、查看是否成功 前言:使用一个开源软件使用sqlyog、navcat都报1251错误,网上都是提示升级客户端,还有一种就是修改mysql配置。本文就是修改配置…...
Keka for Mac v1.4.3 中文下载 解压/压缩工具
Mac分享吧 文章目录 效果一、下载软件二、开始安装1、双击运行软件,将其从左侧拖入右侧文件夹中,等待安装完毕2、应用程序显示软件图标,表示安装成功 三、运行测试1、打开软件2、文件访问权限修改3、访达扩展 安装完成!ÿ…...
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地址是现代计算机网络中两个非常重要的概念,它们各自承担着不同的角色和功能。 MAC地址(Media Access Control Address) 一种物理地址,它是烧录在网卡或接口上的,具有全球唯一性,一般不能被改…...
Linux chmod 命令简介
在Linux中,chmod 命令用于改变文件或文件夹的访问权限。要改变一个文件夹及其内部所有文件和子文件夹的权限,您可以使用递归选项 -R。以下是一些常用的 chmod 命令示例: 给所有用户读、写和执行权限: chmod -R 777 /path/to/direc…...
【LeetCode】删除排序链表中的重复元素 II
目录 一、题目二、解法完整代码 一、题目 给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。 示例 1: 输入:head [1,2,3,3,4,4,5] 输出:[1,2,5] 示例 …...
Obsidian模板库实战指南:从零构建高效知识管理系统
Obsidian模板库实战指南:从零构建高效知识管理系统 【免费下载链接】OB_Template OB_Templates is a Obsidian reference for note templates focused on new users of the application using only core plugins. 项目地址: https://gitcode.com/gh_mirrors/ob/OB…...
PvZ Toolkit:突破植物大战僵尸限制的终极修改器
PvZ Toolkit:突破植物大战僵尸限制的终极修改器 【免费下载链接】pvztoolkit 植物大战僵尸 PC 版综合修改器 项目地址: https://gitcode.com/gh_mirrors/pv/pvztoolkit 副标题:面向全阶段玩家的游戏体验增强工具,让每一场攻防战尽在掌…...
3大突破!开源RGB控制终极指南:从多软件混战到统一灯光管理
3大突破!开源RGB控制终极指南:从多软件混战到统一灯光管理 【免费下载链接】OpenRGB Open source RGB lighting control that doesnt depend on manufacturer software. Supports Windows, Linux, MacOS. Mirror of https://gitlab.com/CalcProgrammer1/…...
LLaMA-Omni推理部署全攻略:本地与云端部署的最佳实践
LLaMA-Omni推理部署全攻略:本地与云端部署的最佳实践 【免费下载链接】LLaMA-Omni LLaMA-Omni is a low-latency and high-quality end-to-end speech interaction model built upon Llama-3.1-8B-Instruct, aiming to achieve speech capabilities at the GPT-4o l…...
别再只用3x3卷积了!手把手教你为YOLOv8定制任意形状的卷积核(AKConv保姆级教程)
突破传统卷积限制:AKConv在YOLOv8中的创新实践 卷积神经网络(CNN)作为计算机视觉领域的基石,其核心组件卷积操作的设计直接影响着模型性能。传统33卷积虽然广泛应用,但在处理非规则形状目标时存在明显局限性。本文将深…...
如何在Ozon产品测款?用CaptainAI精准锁定爆款潜力款
做Ozon运营,测款是店铺长期盈利的关键——选对款能事半功倍,测错款则会积压库存、浪费成本,中小卖家资金精力有限,盲目铺货测款易陷入“高投入、低回报”困境。很多卖家测款常踩坑:凭感觉跟风选热门款,竞争…...
树莓派+SocketCAN实战:手把手教你用CanFestival控制伺服电机(附完整配置文件)
树莓派SocketCAN实战:手把手教你用CanFestival控制伺服电机(附完整配置文件) 在工业自动化和机器人控制领域,CANopen协议因其高可靠性和实时性成为伺服电机控制的首选方案。本文将带你用树莓派这一低成本硬件平台,结合…...
YOLOv5实战:如何用Python手写IoU计算函数提升目标检测精度
YOLOv5实战:手写IoU计算函数提升目标检测精度的Python实现 在目标检测任务中,边界框的定位精度直接影响模型性能。IoU(Intersection over Union)作为衡量预测框与真实框重合度的核心指标,其计算准确性对模型优化至关重…...
三步打造清爽Mac菜单栏:Dozer终极隐藏方案
三步打造清爽Mac菜单栏:Dozer终极隐藏方案 【免费下载链接】Dozer Hide menu bar icons on macOS 项目地址: https://gitcode.com/gh_mirrors/do/Dozer 还在为Mac菜单栏上拥挤不堪的图标感到困扰吗?想要一个简洁高效的工作界面?Dozer正…...
VibeVoice多音色展示:从儿童到老人的自然过渡效果
VibeVoice多音色展示:从儿童到老人的自然过渡效果 1. 引言 你有没有想过,一段文字可以同时用儿童的天真嗓音、青年的清澈声线、中年的沉稳语调,以及老者的沧桑音色来演绎?这不是科幻电影中的场景,而是VibeVoice带来的…...
