Mongodb新增文档、查询文档、更新文档、删除文档

news2024/9/17 9:06:24

文章目录

  • 1、新增文档
    • 1.1、进入容器
    • 1.2、向集合插入一个新文档
    • 1.3、查询文档
    • 1.4、向集合插入一个或者多个文档
  • 2、查询文档
    • 2.1、查询年龄等于20
    • 2.2、查询年龄是20的男性
    • 2.3、查询年龄是20或者性别是男
    • 2.4、查询年龄小于23
    • 2.5、查询年龄小于等于23
    • 2.6、查询大于等于23
    • 2.7、查询年龄不等于23
    • 2.8、模糊查询包含 小 的名字
    • 2.9、模糊查询包含 小 的名字 以及 升序 排序
    • 2.10、模糊查询包含 小 的名字 以及 降序 排序
    • 2.11、跳过前两个匹配的文档,然后返回接下来的两个文档
  • 3、更新文档
    • 3.1、更新({name:'小羊'},{$set:{age:30,gender:'女'}})匹配的文档
    • 3.2、更新({age:23},{$set:{age:30}})匹配的文档
    • 3.3、更新({age:30},{$set:{age:23}})匹配的文档
    • 3.4、更新({name:/小/},{$set:{age:22}})匹配的文档
  • 4、删除文档
    • 4.1、删除age等于21的文档
    • 4.2、查找第一个age字段值为22的文档,并将其删除
    • 4.3、查找所有age字段值为22的文档,并将它们全部删除

1、新增文档

1.1、进入容器

[root@localhost docker]# docker exec -it mongodb mongosh
Current Mongosh Log ID: 66a8ce38d0b85e052bb78f05
Connecting to:          mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.10.6
Using MongoDB:          7.0.0
Using Mongosh:          1.10.6

For mongosh info see: https://docs.mongodb.com/mongodb-shell/

------
   The server generated these startup warnings when booting
   2024-07-30T10:58:29.512+00:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
   2024-07-30T10:58:29.513+00:00: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. We suggest setting it to 'never'
   2024-07-30T10:58:29.513+00:00: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. We suggest setting it to 'never'
   2024-07-30T10:58:29.513+00:00: vm.max_map_count is too low
------

test> 

1.2、向集合插入一个新文档

atguigu> db.myCollection.insertOne({name:'小蓝',age:21})
{
  acknowledged: true,
  insertedId: ObjectId("66a9b0067066bd635ba48cf0")
}

1.3、查询文档

atguigu> db.myCollection.find()
[
  { _id: ObjectId("66a99e507066bd635ba48cef"), name: '小明', age: 20 },
  { _id: ObjectId("66a9b0067066bd635ba48cf0"), name: '小蓝', age: 21 }
]

1.4、向集合插入一个或者多个文档

atguigu> db.myCollection.insertMany([{name:'小狗',age:22,gender:'女'},{name:'小猫',age:23,gender:'男'}])
{
  acknowledged: true,
  insertedIds: {
    '0': ObjectId("66a9b2597066bd635ba48cf1"),
    '1': ObjectId("66a9b2597066bd635ba48cf2")
  }
}
atguigu> db.myCollection.find()
[
  { _id: ObjectId("66a99e507066bd635ba48cef"), name: '小明', age: 20 },
  { _id: ObjectId("66a9b0067066bd635ba48cf0"), name: '小蓝', age: 21 },
  {
    _id: ObjectId("66a9b2597066bd635ba48cf1"),
    name: '小狗',
    age: 22,
    gender: '女'
  },
  {
    _id: ObjectId("66a9b2597066bd635ba48cf2"),
    name: '小猫',
    age: 23,
    gender: '男'
  }
]

2、查询文档

2.1、查询年龄等于20

atguigu> db.myCollection.find({age:20})
[ { _id: ObjectId("66a99e507066bd635ba48cef"), name: '小明', age: 20 } ]
atguigu> db.myCollection.insertMany([{name:'小牛',age:23,gender:'男'},{name:'小羊',age:20,gender:'男'}])
{
  acknowledged: true,
  insertedIds: {
    '0': ObjectId("66a9cf7d7066bd635ba48cf3"),
    '1': ObjectId("66a9cf7d7066bd635ba48cf4")
  }
}
atguigu> db.myCollection.find({age:20})
[
  { _id: ObjectId("66a99e507066bd635ba48cef"), name: '小明', age: 20 },
  {
    _id: ObjectId("66a9cf7d7066bd635ba48cf4"),
    name: '小羊',
    age: 20,
    gender: '男'
  }
]

2.2、查询年龄是20的男性

atguigu> db.myCollection.find({age:20,gender:'男'})
[
  {
    _id: ObjectId("66a9cf7d7066bd635ba48cf4"),
    name: '小羊',
    age: 20,
    gender: '男'
  }
]

2.3、查询年龄是20或者性别是男

atguigu> db.myCollection.find({$or:[{age:20},{gender:'男'}]})
[
  { _id: ObjectId("66a99e507066bd635ba48cef"), name: '小明', age: 20 },
  {
    _id: ObjectId("66a9b2597066bd635ba48cf2"),
    name: '小猫',
    age: 23,
    gender: '男'
  },
  {
    _id: ObjectId("66a9cf7d7066bd635ba48cf3"),
    name: '小牛',
    age: 23,
    gender: '男'
  },
  {
    _id: ObjectId("66a9cf7d7066bd635ba48cf4"),
    name: '小羊',
    age: 20,
    gender: '男'
  }
]

2.4、查询年龄小于23

atguigu> db.myCollection.find({age:{$lt:23}})
[
  { _id: ObjectId("66a99e507066bd635ba48cef"), name: '小明', age: 20 },
  { _id: ObjectId("66a9b0067066bd635ba48cf0"), name: '小蓝', age: 21 },
  {
    _id: ObjectId("66a9b2597066bd635ba48cf1"),
    name: '小狗',
    age: 22,
    gender: '女'
  },
  {
    _id: ObjectId("66a9cf7d7066bd635ba48cf4"),
    name: '小羊',
    age: 20,
    gender: '男'
  }
]

2.5、查询年龄小于等于23

atguigu> db.myCollection.find({age:{$lte:23}})
[
  { _id: ObjectId("66a99e507066bd635ba48cef"), name: '小明', age: 20 },
  { _id: ObjectId("66a9b0067066bd635ba48cf0"), name: '小蓝', age: 21 },
  {
    _id: ObjectId("66a9b2597066bd635ba48cf1"),
    name: '小狗',
    age: 22,
    gender: '女'
  },
  {
    _id: ObjectId("66a9b2597066bd635ba48cf2"),
    name: '小猫',
    age: 23,
    gender: '男'
  },
  {
    _id: ObjectId("66a9cf7d7066bd635ba48cf3"),
    name: '小牛',
    age: 23,
    gender: '男'
  },
  {
    _id: ObjectId("66a9cf7d7066bd635ba48cf4"),
    name: '小羊',
    age: 20,
    gender: '男'
  }
]

2.6、查询大于等于23

atguigu> db.myCollection.find({age:{$gte:23}})
[
  {
    _id: ObjectId("66a9b2597066bd635ba48cf2"),
    name: '小猫',
    age: 23,
    gender: '男'
  },
  {
    _id: ObjectId("66a9cf7d7066bd635ba48cf3"),
    name: '小牛',
    age: 23,
    gender: '男'
  }
]

2.7、查询年龄不等于23

atguigu> db.myCollection.find({age:{$ne:23}})
[
  { _id: ObjectId("66a99e507066bd635ba48cef"), name: '小明', age: 20 },
  { _id: ObjectId("66a9b0067066bd635ba48cf0"), name: '小蓝', age: 21 },
  {
    _id: ObjectId("66a9b2597066bd635ba48cf1"),
    name: '小狗',
    age: 22,
    gender: '女'
  },
  {
    _id: ObjectId("66a9cf7d7066bd635ba48cf4"),
    name: '小羊',
    age: 20,
    gender: '男'
  }
]

2.8、模糊查询包含 小 的名字

atguigu> db.myCollection.find({name:{$regex:'小'}})
[
  { _id: ObjectId("66a99e507066bd635ba48cef"), name: '小明', age: 20 },
  { _id: ObjectId("66a9b0067066bd635ba48cf0"), name: '小蓝', age: 21 },
  {
    _id: ObjectId("66a9b2597066bd635ba48cf1"),
    name: '小狗',
    age: 22,
    gender: '女'
  },
  {
    _id: ObjectId("66a9b2597066bd635ba48cf2"),
    name: '小猫',
    age: 23,
    gender: '男'
  },
  {
    _id: ObjectId("66a9cf7d7066bd635ba48cf3"),
    name: '小牛',
    age: 23,
    gender: '男'
  },
  {
    _id: ObjectId("66a9cf7d7066bd635ba48cf4"),
    name: '小羊',
    age: 20,
    gender: '男'
  }
]
atguigu> db.myCollection.find({name://})
[
  { _id: ObjectId("66a99e507066bd635ba48cef"), name: '小明', age: 20 },
  { _id: ObjectId("66a9b0067066bd635ba48cf0"), name: '小蓝', age: 21 },
  {
    _id: ObjectId("66a9b2597066bd635ba48cf1"),
    name: '小狗',
    age: 22,
    gender: '女'
  },
  {
    _id: ObjectId("66a9b2597066bd635ba48cf2"),
    name: '小猫',
    age: 23,
    gender: '男'
  },
  {
    _id: ObjectId("66a9cf7d7066bd635ba48cf3"),
    name: '小牛',
    age: 23,
    gender: '男'
  },
  {
    _id: ObjectId("66a9cf7d7066bd635ba48cf4"),
    name: '小羊',
    age: 20,
    gender: '男'
  }
]

2.9、模糊查询包含 小 的名字 以及 升序 排序

atguigu> db.myCollection.find({name://}).sort({age:1})
[
  { _id: ObjectId("66a99e507066bd635ba48cef"), name: '小明', age: 20 },
  {
    _id: ObjectId("66a9cf7d7066bd635ba48cf4"),
    name: '小羊',
    age: 20,
    gender: '男'
  },
  { _id: ObjectId("66a9b0067066bd635ba48cf0"), name: '小蓝', age: 21 },
  {
    _id: ObjectId("66a9b2597066bd635ba48cf1"),
    name: '小狗',
    age: 22,
    gender: '女'
  },
  {
    _id: ObjectId("66a9b2597066bd635ba48cf2"),
    name: '小猫',
    age: 23,
    gender: '男'
  },
  {
    _id: ObjectId("66a9cf7d7066bd635ba48cf3"),
    name: '小牛',
    age: 23,
    gender: '男'
  }
]

2.10、模糊查询包含 小 的名字 以及 降序 排序

atguigu> db.myCollection.find({name://}).sort({age:-1})
[
  {
    _id: ObjectId("66a9b2597066bd635ba48cf2"),
    name: '小猫',
    age: 23,
    gender: '男'
  },
  {
    _id: ObjectId("66a9cf7d7066bd635ba48cf3"),
    name: '小牛',
    age: 23,
    gender: '男'
  },
  {
    _id: ObjectId("66a9b2597066bd635ba48cf1"),
    name: '小狗',
    age: 22,
    gender: '女'
  },
  { _id: ObjectId("66a9b0067066bd635ba48cf0"), name: '小蓝', age: 21 },
  { _id: ObjectId("66a99e507066bd635ba48cef"), name: '小明', age: 20 },
  {
    _id: ObjectId("66a9cf7d7066bd635ba48cf4"),
    name: '小羊',
    age: 20,
    gender: '男'
  }
]

2.11、跳过前两个匹配的文档,然后返回接下来的两个文档

atguigu> db.myCollection.find({name://}).sort({age:-1}).limit(2).skip(2)
[
  {
    _id: ObjectId("66a9b2597066bd635ba48cf1"),
    name: '小狗',
    age: 22,
    gender: '女'
  },
  { _id: ObjectId("66a9b0067066bd635ba48cf0"), name: '小蓝', age: 21 }
]

3、更新文档

3.1、更新({name:‘小羊’},{$set:{age:30,gender:‘女’}})匹配的文档

atguigu> db.myCollection.update({name:'小羊'},{$set:{age:30,gender:'女'}})
DeprecationWarning: Collection.update() is deprecated. Use updateOne, updateMany, or bulkWrite.
{
  acknowledged: true,
  insertedId: null,
  matchedCount: 1,
  modifiedCount: 1,
  upsertedCount: 0
}

3.2、更新({age:23},{$set:{age:30}})匹配的文档

atguigu> db.myCollection.updateOne({age:23},{$set:{age:30}})
{
  acknowledged: true,
  insertedId: null,
  matchedCount: 1,
  modifiedCount: 1,
  upsertedCount: 0
}

3.3、更新({age:30},{$set:{age:23}})匹配的文档

atguigu> db.myCollection.updateMany({age:30},{$set:{age:23}})
{
  acknowledged: true,
  insertedId: null,
  matchedCount: 3,
  modifiedCount: 3,
  upsertedCount: 0
}

3.4、更新({name:/小/},{$set:{age:22}})匹配的文档

atguigu> db.myCollection.updateMany({name://},{$set:{age:22}})
{
  acknowledged: true,
  insertedId: null,
  matchedCount: 6,
  modifiedCount: 5,
  upsertedCount: 0
}

4、删除文档

4.1、删除age等于21的文档

atguigu> db.myCollection.remove({age:21})
DeprecationWarning: Collection.remove() is deprecated. Use deleteOne, deleteMany, findOneAndDelete, or bulkWrite.
{ acknowledged: true, deletedCount: 0 }

4.2、查找第一个age字段值为22的文档,并将其删除

atguigu> db.myCollection.deleteOne({age:22})
{ acknowledged: true, deletedCount: 1 }

4.3、查找所有age字段值为22的文档,并将它们全部删除

atguigu> db.myCollection.deleteMany({age:22})
{ acknowledged: true, deletedCount: 5 }

在这里插入图片描述

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

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

相关文章

新型蜜罐有哪些?未来方向如何?

前言:技术发展为时代带来变革,同时技术创新性对蜜罐产生推动力。 一、新型蜜罐的诞生 技术发展为时代带来变革,同时技术创新性对蜜罐产生推动力,通过借鉴不同技术思想、方法,与其它技术结合形成优势互补,…

Docker 搭建 Minio 容器

Docker 搭建 Minio 容器 (完整详细版) 简介: Minio 是一个基于Apache License v2.0开源协议的对象存储服务,虽然轻量,却拥有着不错的性能。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据。 例如图片、视频、日…

CentOS通过rsync实现文件同步(daemon方式)

rsync介绍 rsync是Liunx下的远程数据同步工具,可快速同步多台服务器间的文件和目录,并可实现增量同步以减少数据的传输。 rsync有两种常用的认证方式,一种是rsync-daemon方式,另外一种是ssh方式。 daemon 方式与 ssh 方式相比有…

Nginx代理路径被吃

Nginx代理路径被吃的情况 日常工作中经常使用nginx反向代理一些资源,有时正常代理,发现代理不过去。 验证被吃调location情况 通过浏览器访问: https://zhao138969.com/LinuxPackage/Python/SelectDocker location /LinuxPackage { proxy…

深度学习Day-27:生成对抗网络(GAN)入门

🍨 本文为:[🔗365天深度学习训练营] 中的学习记录博客 🍖 原作者:[K同学啊 | 接辅导、项目定制] 要求: 了解什么是生成对抗网络生成对抗网络结构是怎么样的学习本文代码,并跑通代码调用训练好…

【MeterSphere】3.X备份与还原

目录 一、手动备份数据库 二、备份 minio 目录 三、自动备份 3.1 设置备份服务器 3.2 创建文件夹 msdb_bak 3.3 设置备份脚本 3.4 创建用于定时任务脚本文件 3.5 为msdb_bak赋权 3.6 执行 install_ms_backup.sh 3.7 查看定时任务是否成功 四、还原数据 4.1 还原 s…

LinkedHashSet底层原理

LinkedHashSet 的特点 去重:不允许重复的元素,类似于 HashSet。有序:能够记住元素的插入顺序,类似于 LinkedList。性能:具有较好的平均时间复杂度,如添加、删除和查找操作通常都是 O(1)。 内部实现 数据…

Java全栈课程之Linux——进程管理

一、什么是进程 1、在Linux中,每一个程序都是有自己的一个进程,每一个进程都有一个id号! 2、每一个进程呢,都会有一个父进程! 3、进程可以有两种存在方式:前台!后台运行! 4、一般的话服务都是后台运行的,基本的程序都是前台运行的! 二、命令 ps 查看当前系统中正在执行的…

航空客运订票系统(数据结构与算法课设)(C语言版)

本文为数据结构与算法课设《航空客运订票系统》的分享与实践,采用了顺序表和链表两种数据结构。贴近生活采用了系统选择来区别用户和管理员。 目录 1.设计内容与要求 2.功能实现和程序调试 功能实现 函数原型清单 程序调试 3.代码实现 (1)结构体定义 (2)管理员菜单…

若依开发平台数据权限设计与实现深度剖析

概述 在之前的博客《数据权限的设计与思考》中,我们对软件系统的数据权限进行了全面的梳理。接下来,本文深度剖析主流开源的若依开发平台数据权限是怎么设计与实现的。 平台展示 在角色管理菜单中,在角色列表中选择一个具体角色&#xff…

【C++】实验十二

题目: 1、事先编好程序,上机调试和运行程序,分析结果。 将教材第11章例11.1的程序片段补充和改写成一个完整、正确的程序,用公用继承方式。在程序中包括输入数据的函数,在程序运行时输入num,name&#xf…

人工智能与机器学习原理精解【11】

文章目录 广义线性模型基础理论泊松分布的基本公式一、基本公式二、泊松分布的特点三、泊松分布的应用场景四、泊松分布与二项分布的关系五、总结 泊松回归例子1例子背景模型设定数据收集模型拟合结果解释预测应用场景 泊松回归例子2背景数据准备模型设定模型拟合结果解释预测 …

红外视觉简介:近红外图像与中远红外图像

在本教程中,您将学习红外成像的基础知识,包括: 什么是红外图像:近红外与中远红外红外摄像机的类型它们有什么用处什么是红外图像?近红外图像 在开始处理这种奇怪的图像之前,我们应该了解它们的来源。 我们都熟悉常见的数字彩色可见图片(图 1,左),因为我们每年都会用…

“华数杯”全国大学生数学建模竞赛含金量如何?

“华数杯”全国大学生数学建模竞赛是由华中师范大学主办的一项全国性的大学生数学建模竞赛。该竞赛旨在提高大学生的数学建模能力和实践能力,增强大学生的创新意识和团队协作精神。 搜集一些评价,有人说该竞赛的含金量较高,但是也有一些人认为其认可度不高,报名费用较贵。…

【漏洞复现】华天动力OA downloadWpsFile.jsp 任意文件读取漏洞

0x01 产品简介 华天动力OA是一款将先进的管理思想、 管理模式和软件技术、网络技术相结合,为用户提供了低成本、 高效能的协同办公和管理平台。 0x02 漏洞概述 华天动力OA downloadWpsFile.jsp 接口处存在任意文件读取漏洞,未经身份认证的攻击者可利用…

springboot民办高校科研项目管理系统-计算机毕业设计源码54009

摘 要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存…

Chat2DB新推Chat2Excel,让数据对话跃然纸上

Excel 智能问答 Chat2Excel 1. 创建新聊天 点击左侧AI对话,进入对话界面。点击加号""按钮以开始一个新的对话。 新建对话选择表格类型, 选择上传excel文档。 双击对话名称可以修改对话名称。现在我们就可以开始针对于Excel进行智能问答了。 2. 智能…

小程序开发_02项目构成

一、项目的基本结构 二、小程序的页面组成部分 三、json配置文件 ① project.config.json文件 作用:项目的配置文件,用来记录对小程序开发工具所作的个性化配置 ② sitemap.json 作用:是否允许被微信引擎搜索,不希望被搜索dis ③ app.jso…

Pycharm打开 .xlsx文件 使用系统自带的软件

问题由来 最初默认是使用自带的软件打开 同事电脑默认打开方式是pycharm,有点不好弄,希望打开方式是默认系统默认; 自己尝试修改了一下自己的.xlsx打开方式,无法解决同事问题,后删除默认,自己电脑就出现乱码…

软考网络工程师 VS 华为认证HCIP,中级认证里哪个更香?

在网络工程师的专业发展道路上,技能的提升可以说是升职加薪的第一要点。 如果有想要考证的网工朋友,想来软考和华为认证,基本都是绕不开的。 很多朋友都会在软考中级的网络工程师认证和华为HCIP之间感到犯难,一样都是中级认证&…