MongoDB 常用操作指南(Docker 环境下)

本文详细介绍如何在 Docker 中操作 MongoDB,包括如何进入命令行、进行用户认证、查看数据库和集合,以及常用的索引操作和其他高频使用的 MongoDB 方法。小白也能轻松上手


1. 在 Docker 中进入 MongoDB 命令行

  1. 进入运行 MongoDB 容器的命令行:

    docker exec -it <容器名称或ID> mongo
    

    例如:

    docker exec -it mongodb_container mongo
    
  2. 切换到管理员数据库 admin

    use admin
    
  3. 用户认证:

    db.auth("aidenmx", "qazx123")
    db.auth("aiden", "qazx123")
    

    提示:这里假设您的用户名为 aidenmxaiden,密码为 qazx123。根据实际情况替换。通常只需一次认证。


2. 查看数据库和集合

  1. 显示所有数据库:

    show dbs
    
  2. 切换到某个数据库:

    use history
    
  3. 显示当前数据库的所有集合(表):

    show tables
    

3. 查看集合中的索引

查看指定集合中的索引信息:

db.<集合名>.getIndexes()

例如:

db.sublist2.getIndexes()

输出会显示所有索引的详细信息,包括索引字段和索引类型。


4. 创建索引

4.1 创建单字段索引

为某个字段创建索引:

db.<集合名>.createIndex({ <字段名>: 1 })
  • 1 表示升序索引,-1 表示降序索引。

例如:

db.sublist2.createIndex({ applicationNumber: 1 })

4.2 创建复合索引

为多个字段创建复合索引:

db.<集合名>.createIndex({ <字段1>: 1, <字段2>: -1 })
  • 注意字段顺序,前缀规则适用。

例如:

db.sublist2.createIndex({ applicationNumber: 1, classNumber: -1 })

5. 删除索引

  1. 删除单个索引:

    db.<集合名>.dropIndex("<索引名>")
    

    获取索引名可通过 getIndexes() 查看。

  2. 删除集合中的所有索引:

    db.<集合名>.dropIndexes()
    

6. 查询相关操作

  1. 查询所有文档:

    db.<集合名>.find()
    
  2. 查询第一个文档:

    db.<集合名>.findOne()
    
  3. 条件查询:

    db.<集合名>.find({ <字段名>: <> })
    

    例如:

    db.sublist2.find({ applicationNumber: "123456" })
    
  4. 限制返回条数:

    db.<集合名>.find().limit(10)
    
  5. 排序查询:

    db.<集合名>.find().sort({ <字段名>: 1 })
    
    • 1 表示升序,-1 表示降序。

7. 插入与删除操作

  1. 插入单个文档:

    db.<集合名>.insertOne({ <字段1>: <1>, <字段2>: <2> })
    

    例如:

    db.sublist2.insertOne({ applicationNumber: "123456", classNumber: 5 })
    
  2. 删除符合条件的文档:

    db.<集合名>.deleteOne({ <字段名>: <> })
    

    例如:

    db.sublist2.deleteOne({ applicationNumber: "123456" })
    
  3. 删除所有文档:

    db.<集合名>.deleteMany({})
    

8. 更新操作

  1. 更新单个文档:

    db.<集合名>.updateOne({ <匹配条件> },{ $set: { <字段1>: <新值1>, <字段2>: <新值2> } }
    )
    

    例如:

    db.sublist2.updateOne({ applicationNumber: "123456" },{ $set: { classNumber: 10 } }
    )
    
  2. 更新多个文档:

    db.<集合名>.updateMany({ <匹配条件> },{ $set: { <字段1>: <新值1>, <字段2>: <新值2> } }
    )
    

9. 数据统计

  1. 查看集合中文档数量:

    db.<集合名>.countDocuments()
    
  2. 按条件统计文档数量:

    db.<集合名>.countDocuments({ <字段名>: <> })
    

    例如:

    db.sublist2.countDocuments({ classNumber: 5 })
    

通过上述命令,您可以高效地操作 MongoDB 数据库。直接复制粘贴使用即可!

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

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

相关文章

【Java基础面试题038】栈和队列在Java中的区别是什么?

回答重点 栈&#xff08;Stack&#xff09;&#xff1a;遵循后进先出&#xff08;LIFO&#xff0c;Last In&#xff0c;First Out&#xff09;原则。即&#xff0c;最后插入的元素最先被移除。主要操作包括push&#xff08;入栈&#xff09;和pop&#xff08;出栈&#xff09;…

idea2024创建JavaWeb项目以及配置Tomcat详解

今天呢&#xff0c;博主的学习进度也是步入了JavaWeb&#xff0c;目前正在逐步杨帆旗航&#xff0c;迎接全新的狂潮海浪。 那么接下来就给大家出一期有关JavaWeb的配置教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正…

由于这些关键原因,我总是手边有一台虚拟机

概括 虚拟机提供了一个安全的环境来测试有风险的设置或软件,而不会影响您的主系统。设置和保存虚拟机非常简单,无需更改主要设备即可方便地访问多个操作系统。运行虚拟机可能会占用大量资源,但现代 PC 可以很好地处理它,为实验和工作流程优化提供无限的可能性。如果您喜欢使…

【FPGA】ISE13.4操作手册,新建工程示例

关注作者了解更多 我的其他CSDN专栏 求职面试 大学英语 过程控制系统 工程测试技术 虚拟仪器技术 可编程控制器 工业现场总线 数字图像处理 智能控制 传感器技术 嵌入式系统 复变函数与积分变换 单片机原理 线性代数 大学物理 热工与工程流体力学 数字信号处…

python环境中阻止相关库的自动更新

找到conda中的Python虚拟环境位置 这里以conda中的pytorch虚拟环境为例&#xff08;Python环境位置&#xff09;&#xff0c;在.conda下的envs中进入pytorch下的conda-meta路径下 新建一个空白的pinned文档 右键点击桌面或文件资源管理器中的空白处&#xff0c;选择“新建” …

重温设计模式--外观模式

文章目录 外观模式&#xff08;Facade Pattern&#xff09;概述定义 外观模式UML图作用 外观模式的结构C 代码示例1C代码示例2总结 外观模式&#xff08;Facade Pattern&#xff09;概述 定义 外观模式是一种结构型设计模式&#xff0c;它为子系统中的一组接口提供了一个统一…

uniapp 微信小程序 页面部分截图实现

uniapp 微信小程序 页面部分截图实现 ​ 原理都是将页面元素画成canvas 然后将canvas转化为图片&#xff0c;问题是我页面里边本来就有一个canvas&#xff0c;ucharts图画的canvas我无法画出这块。 ​ 想了一晚上&#xff0c;既然canvas最后能转化为图片&#xff0c;那我直接…

Flutter 基础知识总结

1、Flutter 介绍与环境安装 为什么选择 Dart&#xff1a; 基于 JIT 快速开发周期&#xff1a;Flutter 在开发阶段采用 JIT 模式&#xff0c;避免每次改动都进行编译&#xff0c;极大的节省了开发时间基于 AOT 发布包&#xff1a;Flutter 在发布时可以通过 AOT 生成高效的 ARM…

Jenkins 持续集成部署

Jenkins的安装与部署 前言 当我们在实施一个项目时&#xff0c;从新代码中获得反馈的速度越快&#xff0c;问题越早得到解决&#xff0c;获得反馈的一种常见方法是在新代码之后运行测试&#xff0c;但这就导致了当代码正在编译并且正在运行测试时&#xff0c;开发人员无法在测…

跨站请求伪造之基本介绍

一.基本概念 1.定义 跨站请求伪造&#xff08;Cross - Site Request Forgery&#xff0c;缩写为 CSRF&#xff09;漏洞是一种网络安全漏洞。它是指攻击者通过诱导用户访问一个恶意网站&#xff0c;利用用户在被信任网站&#xff08;如银行网站、社交网站等&#xff09;的登录状…

Pytorch | 利用BIM/I-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击

Pytorch | 利用BIM/I-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击 CIFAR数据集BIM介绍基本原理算法流程 BIM代码实现BIM算法实现攻击效果 代码汇总bim.pytrain.pyadvtest.py 之前已经针对CIFAR10训练了多种分类器&#xff1a; Pytorch | 从零构建AlexNet对CIFAR10进行分类 Py…

如何更好的进行时间管理

先想一下我们想要做的事情&#xff0c;然后拿出Excel表格将这些事情记录下来&#xff0c;我们把它叫做任务对这些任务按照重要性&#xff0c;紧急程度进行排序&#xff0c;拿出表格中的前六个任务&#xff0c;就是今天要做的任务新建另一张excel表格&#xff0c;表格的一列为时…

OpenGL —— 2.6.1、绘制一个正方体并贴图渲染颜色(附源码,glfw+glad)

源码效果 C++源码 纹理图片 需下载stb_image.h这个解码图片的库,该库只有一个头文件。 具体代码: vertexShader.glsl #version

ubuntu开机进入initramfs状态

虚拟机卡死成功起后进入了initramfs状态&#xff0c;可能是跟文件系统有问题或者检索不到根文件系统&#xff0c;或者是配置错误&#xff0c;系统磁盘等硬件问题导致 开机后进入如下图的界面&#xff0c; 文中有一条提示 要手动fsck 命令修复 /dev/sda1 命令如下 fsck /de…

java根据Word模板实现动态填充导出

最近项目中需要导出Word&#xff0c;根据不同的信息导出不同的内容&#xff0c;包含文本、列表、图片等&#xff0c;本文使用poi-tl实现在次做以记录。 添加依赖 <!-- word导出 --> <dependency><groupId>com.deepoove</groupId><artifactId>po…

mindie推理大语言模型问题及解决方法汇总

问题说明 使用功能mindie 1.0 RC2推理大语言模型&#xff0c;遇到不少问题&#xff0c;记录下解决思路。 我的硬件是910B4。 问题及解决 问题1 在docker内启动mindie时终端报错 Fatal Python error: PyThreadState_Get: the function must be called with the GIL held, …

Selenium 全面指南

Selenium 是一个强大的 Web 自动化工具&#xff0c;支持多种浏览器和语言绑定。 1. Selenium 的基本概念 WebDriver&#xff1a;Selenium 提供的核心接口&#xff0c;用于控制浏览器操作。显式等待&#xff1a;等待特定条件满足后再执行操作。隐式等待&#xff1a;全局设置一个…

Go框架比较:goframe、beego、iris和gin

由于工作需要&#xff0c;这些年来也接触了不少的开发框架&#xff0c;Golang的开发框架比较多&#xff0c;不过基本都是Web"框架"为主。这里稍微打了个引号&#xff0c;因为大部分"框架"从设计和功能定位上来讲&#xff0c;充其量都只能算是一个组件&…

【华为OD-E卷-木板 100分(python、java、c++、js、c)】

【华为OD-E卷-木板 100分&#xff08;python、java、c、js、c&#xff09;】 题目 小明有 n 块木板&#xff0c;第 i ( 1 ≤ i ≤ n ) 块木板长度为 ai。 小明买了一块长度为 m 的木料&#xff0c;这块木料可以切割成任意块&#xff0c;拼接到已有的木板上&#xff0c;用来加…

sqlserver临时表来做表联查复杂查询

使用临时表&#xff0c;先查询出结果&#xff0c;在用于后面表的子查询或者联查 -- 删除表1if EXISTS ( SELECT 1 FROM tempdb.sys.objects where name like #temp_PublishRecord% ) beginDROP TABLE #temp_PublishRecordprint 已删除临时表 #temp_PublishRecordend--创…