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

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


1. 在 Docker 中进入 MongoDB 命令行

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

    bash 复制代码
    docker exec -it <容器名称或ID> mongo

    例如:

    bash 复制代码
    docker exec -it mongodb_container mongo
  2. 切换到管理员数据库 admin

    javascript 复制代码
    use admin
  3. 用户认证:

    javascript 复制代码
    db.auth("aidenmx", "qazx123")
    db.auth("aiden", "qazx123")

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


2. 查看数据库和集合

  1. 显示所有数据库:

    javascript 复制代码
    show dbs
  2. 切换到某个数据库:

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

    javascript 复制代码
    show tables

3. 查看集合中的索引

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

javascript 复制代码
db.<集合名>.getIndexes()

例如:

javascript 复制代码
db.sublist2.getIndexes()

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


4. 创建索引

4.1 创建单字段索引

为某个字段创建索引:

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

例如:

javascript 复制代码
db.sublist2.createIndex({ applicationNumber: 1 })

4.2 创建复合索引

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

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

例如:

javascript 复制代码
db.sublist2.createIndex({ applicationNumber: 1, classNumber: -1 })

5. 删除索引

  1. 删除单个索引:

    javascript 复制代码
    db.<集合名>.dropIndex("<索引名>")

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

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

    javascript 复制代码
    db.<集合名>.dropIndexes()

6. 查询相关操作

  1. 查询所有文档:

    javascript 复制代码
    db.<集合名>.find()
  2. 查询第一个文档:

    javascript 复制代码
    db.<集合名>.findOne()
  3. 条件查询:

    javascript 复制代码
    db.<集合名>.find({ <字段名>: <值> })

    例如:

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

    javascript 复制代码
    db.<集合名>.find().limit(10)
  5. 排序查询:

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

7. 插入与删除操作

  1. 插入单个文档:

    javascript 复制代码
    db.<集合名>.insertOne({ <字段1>: <值1>, <字段2>: <值2> })

    例如:

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

    javascript 复制代码
    db.<集合名>.deleteOne({ <字段名>: <值> })

    例如:

    javascript 复制代码
    db.sublist2.deleteOne({ applicationNumber: "123456" })
  3. 删除所有文档:

    javascript 复制代码
    db.<集合名>.deleteMany({})

8. 更新操作

  1. 更新单个文档:

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

    例如:

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

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

9. 数据统计

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

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

    javascript 复制代码
    db.<集合名>.countDocuments({ <字段名>: <值> })

    例如:

    javascript 复制代码
    db.sublist2.countDocuments({ classNumber: 5 })

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

相关推荐
段一凡-华北理工大学9 分钟前
向量数据库实战:选型、调优与落地~系列文章12:文本分块策略实战:chunk_size 怎么选?重叠多少?
开发语言·数据库·后端·oracle·rust·工业智能体·高炉智能化
oradh2 小时前
Oracle XTTS实现跨版本迁移和升级(Oracle 11g单库升级至19C RAC集群)
数据库·oracle·11g升级19c·xtts跨版本迁移和升级
生活爱好者!3 小时前
我把NAS当作下载机,docker一键部署qb
运维·docker·容器
z123456789863 小时前
2026最新两款AI编程工具深度对比实测
java·数据库·ai编程
程序猿DD3 小时前
一个 API Key,统一调用大模型、生图和联网搜索
数据库·网关
MC皮蛋侠客3 小时前
uv 系列(七):CI/CD、Docker 与私有索引——生产级交付
python·ci/cd·docker·uv
TlSfoward4 小时前
抓包代理链路下的 TLS 指纹变化分析 TLSFOWARD抓包工具
数据库·爬虫·网络协议·搜索引擎·php
数智化管理手记4 小时前
账龄分析手工统计易遗漏?自动账龄分析工具怎么搭建
大数据·网络·数据库·人工智能·数据挖掘
LabVIEW开发5 小时前
NI Package Manager安装LabVIEW时InternalServerError错误
网络·数据库·labview·labview知识·labview功能·labview程序
SelectDB5 小时前
PostgreSQL 实时同步到 Apache Doris:一站式 CDC 解决方案
数据库