首页 > 数据库 >MongoDB学习笔记二(插入、更新)

MongoDB学习笔记二(插入、更新)

时间:2023-02-08 11:13:11浏览次数:39  
标签:MongoDB 更新 运算符 插入 字段 文档 笔记 id

1、插入 runCommand

 insert:后面写集合名称

ordered:可选,布尔值。如果true,则当插入文档失败时,返回而不插入inserts数组中列出的任何剩余文档。如果 false,则当插入一个文档失败时,继续插入剩余的文档。默认为true.

bypassDocumentValidation:可选,布尔值。启用insert在操作期间绕过文档验证。这使您可以插入不符合验证要求的文档。

插入单个文档

插入多个文档

若创建集合为:

 尝试插入违反验证规则的文档:

 返回结果报错。

若按以下输入:

 则可操作成功。

 

2、插入数据

如果文档没有指定_id字段,MongoDB 会将_id带有 ObjectId 值的字段添加到新文档中。

在 MongoDB 中,存储在集合中的每个文档都需要一个唯一的 _id字段作为主键。如果插入的文档省略了该_id字段,MongoDB 驱动程序会自动为该字段生成一个ObjectId_id。

>>>插入一条数据 insertOne

若指定_id,如下:

>>>插入多条数据 insertMany

 

3、更新数据 

>>>更新一条数据 updateOne

只更新第一条文档,如果匹配到了多个

 执行后的结果:

更新操作:
使用$set运算符将​​字段的值更新为 ,将 size.uom字段的"cm"值更新status 为"P",
使用$currentDate运算符将​​字段的值更新为lastModified当前日期。如果 lastModified字段不存在, $currentDate将创建该字段。

 

示例:

①更新数组中的值

如:插入如下数据:

执行后:

 

 执行如下更新:

定位的$运算符充当 更新查询文档的第一个匹配项的占位符。

执行结果:

 若更新时未添加$占位符,则直接更新的是该字段值,如下:

②更新数组中的文档

如以下文档,更改数组:

 如下更新:

 执行结果:

 ③使用多个字段匹配更新嵌入式文档

这$运算符可以更新与运算符指定的多个查询条件匹配的第一个数组元素$elemMatch

原文档为:

 执行:

 等价于:

 两个更新操作执行后,结果一致,为:

 >>>更新多条数据 updateMany

 匹配到的多个文档都会更新

标签:MongoDB,更新,运算符,插入,字段,文档,笔记,id
From: https://www.cnblogs.com/plzh/p/17099073.html

相关文章

  • 学习笔记(ResNet)
    1、介绍ResNet,ResNetV2,ResNeXt模型,权值由ImageNet训练而来。ImageNet数据是CV领域非常出名的数据集,ISLVRC竞赛使用的数据集是轻量版的ImageNet数据集。ISL......
  • pytorch学习笔记2
    pytorch学习笔记2   RNN结构图pytorch保存模型方法Pytorch有两种保存模型的方式,都是通过调用pickle序列化方法实现的。第一种方法只保存模型参数。第二种方法......
  • 读Java实战(第二版)笔记04_用流收集数据
    1. 方便程序员和可读性是头等大事!1.1. 函数式API设计更易复合和重用2. 归约和汇总为一个值2.1. counting()2.1.1. 计数2.2. maxBy2.2.1. 查找流中的最大值2......
  • jenkins学习笔记之一:流水线基础语法
    一、Pipeline概念1node/agent(节点)节点是一个机器,可以是Jenkins的master节点也可以是slave节点。通过node指定当前job运行的机器(这个是脚本式语法)。参数:.any在任......
  • 小苗与大树的精选谈话笔记
    价值50元一节的看图学职场文化表达技巧课,我的课不贵,也就两包烟,50块钱!!!本来今天都没什么想法写文章,在这里我要感谢我可爱的同事,没有你,我今天的素材都没有,我都不知道要写啥,你......
  • Decoupling Zero-Shot Semantic Segmentation论文阅读笔记
    摘要现有的方法将零样本语义分割(Zero-shotsemanticsegmentation,ZS3)视为逐像素的zs分类,并且使用仅用文本预训练的模型来完成已知类到未知类的知识迁移,而文本图像预训练模......
  • 《分布式技术原理与算法解析》学习笔记Day04
    分布式选举算法为什么需要分布式选举?分布式意味着我们的应用部署在一个集群中,集群包含多个节点或者服务器,对于一个集群来说,多个节点是怎么协同工作的呢?我们需要有一个主......
  • 算法学习笔记(13): Manacher算法
    Manacher算法形象的被译为马拉车算法这个算法用于处理简单的回文字符串的问题。可以在\(O(n)\)的复杂度内处理出每一个位置为中心的回文串的最长长度。为了避免出现......
  • Linux常用命令-文件相关(学习笔记一)
    学习整理文件和文件夹常用的命令,记录常规用法,便于查找,详细的命令用法后续研究创建文件夹mkdirfolderName重命名文件夹mv是移动文件和文件夹,可以将文件夹移动......
  • HTML学习笔记
    安装VSCode安装VSCode安装中文语言包尝试安装ayu主题将一个目录作为项目目录大创建一个新网页安装liveserver尝试通过liveserver来运行网页设置代码自动存储......