Java-145 深入浅出 MongoDB 基本操作详解:数据库查看、切换、创建集合与删除完整教程

点一下关注吧!!!非常感谢!!持续更新!!!

🚀 AI篇持续更新中!(长期更新)

AI炼丹日志-31- 千呼万唤始出来 GPT-5 发布!"快的模型 + 深度思考模型 + 实时路由",持续打造实用AI工具指南!📐🤖

💻 Java篇正式开启!(300篇)

目前2025年10月07日更新到:
Java-141 深入浅出 MySQL Spring事务失效的常见场景与解决方案详解(3)

MyBatis 已完结,Spring 已完结,Nginx已完结,Tomcat已完结,分布式服务正在更新!深入浅出助你打牢基础!

📊 大数据板块已完成多项干货更新(300篇):

包括 Hadoop、Hive、Kafka、Flink、ClickHouse、Elasticsearch 等二十余项核心组件,覆盖离线+实时数仓全栈!
大数据-278 Spark MLib - 基础介绍 机器学习算法 梯度提升树 GBDT案例 详解

基本操作

查看数据库

在 MongoDB 中,show dbs 命令用于列出当前 MongoDB 实例中的所有数据库及其存储大小。这个命令对于数据库管理和监控非常有用。

命令语法

shell 复制代码
show dbs;

命令说明

  1. 该命令会显示所有非空数据库
  2. 每个数据库会显示其名称和占用空间大小(以MB为单位)
  3. 系统默认会显示三个数据库:
    • admin:存储用户权限信息
    • local:存储本地单服务器特定数据
    • config:存储分片集群配置信息

示例输出

shell 复制代码
admin   0.000GB
config  0.000GB
local   0.000GB
mydb    0.045GB
test    0.002GB

注意事项

  1. 新创建的数据库如果没有数据,不会显示在列表中
  2. 需要具有适当的权限才能查看所有数据库
  3. 在分片集群中,该命令只显示主分片上的数据库

相关命令

  • use <dbname>:切换到指定数据库
  • db.dropDatabase():删除当前数据库
  • db.stats():查看当前数据库的统计信息

我们启动一个连接的Shell,进行测试:

切换数据库

在 MongoDB 中,use 命令用于切换当前操作的数据库。这个命令既可用于创建新数据库,也可用于切换到已存在的数据库。

语法说明

shell 复制代码
use database_name;

其中:

  • database_name 是目标数据库的名称
  • 如果数据库不存在,MongoDB 会在第一次向该数据库写入数据时自动创建它

使用示例

  1. 切换到已存在的 "test" 数据库:
shell 复制代码
use test;
  1. 创建并切换到新数据库 "mydb":
shell 复制代码
use mydb;

注意事项

  • 切换数据库后,所有后续操作(如集合创建、数据插入等)都将在该数据库上执行
  • 要查看当前正在使用的数据库,可以使用 db 命令
  • 要列出所有数据库,可以使用 show dbs 命令
  • 新创建的数据库只有在插入数据后才会显示在数据库列表中

应用场景

  • 开发过程中需要操作不同的数据库
  • 测试环境与生产环境的数据库切换
  • 多租户应用中的数据库隔离

比如我这里:

shell 复制代码
use local;

创建集合

基本语法

在MongoDB中,可以使用db.createCollection()方法来创建一个新的集合。基础语法如下:

shell 复制代码
db.createCollection(name, options)
  • name:要创建的集合名称(字符串类型)
  • options:可选参数,用于指定集合的配置选项

创建wzk集合示例

shell 复制代码
db.createCollection("wzk")

这个命令会在当前数据库中创建一个名为"wzk"的集合。如果创建成功,MongoDB会返回:

json 复制代码
{ "ok" : 1 }

可选参数说明

可以为集合指定额外的配置选项,例如:

shell 复制代码
db.createCollection("wzk", {
    capped: true,       // 是否为固定集合
    size: 100000,       // 固定集合的最大大小(字节)
    max: 500            // 固定集合允许的最大文档数
})

实际应用场景

  1. 日志存储:创建固定集合(capped collection)来存储日志,自动淘汰旧数据
  2. 临时数据:为特定业务创建专用集合
  3. 数据分片:为分片集群创建初始集合

注意事项

  • 集合名称区分大小写
  • 集合名称不能包含特殊字符(如$)
  • 如果集合已存在,该命令不会覆盖原有集合

查看集合

在 MongoDB 中,集合(Collection)类似于关系型数据库中的表(Table)。要查看当前数据库中的所有集合,可以使用以下命令:

shell 复制代码
show tables;

或者

shell 复制代码
show collections;

说明:

  1. 这两个命令功能完全相同,都会显示当前数据库中的所有集合名称
  2. 使用前需要先选择数据库(通过 use 数据库名 命令)
  3. 显示结果不包括系统集合(如system.indexes),要查看系统集合需要使用 db.getCollectionNames()

示例:

假设当前数据库为"test",包含三个集合:users, products, orders

执行命令后会显示:

shell 复制代码
> show collections;
users
products
orders

其他相关命令:

shell 复制代码
# 查看集合详细信息(包括系统集合)
db.getCollectionInfos()

# 查看特定集合的状态信息
db.collection.stats()

删除集合

语法说明

在MongoDB中删除集合可以使用db.collection.drop()方法。该方法会完全删除指定的集合及其所有文档、索引等关联数据。

基本语法:

shell 复制代码
db.<collection_name>.drop()

参数说明

  • collection_name:要删除的集合名称

执行示例

shell 复制代码
db.wzk.drop();

返回值

  • 成功删除时返回true
  • 集合不存在时返回false

注意事项

  1. 删除操作不可逆,执行前请确认数据已备份或不再需要
  2. 删除集合会同时删除该集合的所有索引
  3. 需要具备相应的数据库权限才能执行此操作
  4. 在生产环境执行前建议先确认集合大小:db.wzk.stats()

替代方案

如果只是想清空集合数据而保留集合结构,可以考虑使用:

shell 复制代码
db.wzk.deleteMany({})

应用场景

  1. 测试环境数据清理
  2. 重构数据库结构
  3. 临时数据清理
  4. 数据迁移前的准备工作

删除掉集合

删除当前数据库

db.dropDatabase() 是 MongoDB 中用于删除当前所在数据库的命令。这个命令会永久删除整个数据库及其所有集合和文档,执行前请务必确认。

使用说明

  1. 基本语法
shell 复制代码
db.dropDatabase()
  1. 执行步骤

    • 首先通过 use 命令切换到目标数据库
    • 然后执行 db.dropDatabase()
    • 命令会返回删除操作的结果信息
  2. 示例

shell 复制代码
> use testdb  # 切换到testdb数据库
switched to db testdb
> db.dropDatabase()  # 删除当前数据库
{ "dropped" : "testdb", "ok" : 1 }
  1. 注意事项

    • 删除操作不可逆
    • 需要具有足够的权限
    • 在生产环境使用时需特别谨慎
    • 建议在执行前先备份重要数据
  2. 应用场景

    • 测试环境重置
    • 清理废弃数据库
    • 开发环境重建数据结构
  3. 替代方案

    • 如果只是想清空数据而不删除数据库,可以考虑使用 db.collection.drop() 逐个删除集合
    • 或者使用 db.collection.remove({}) 清空集合内的文档
相关推荐
q***46521 小时前
Win10下安装 Redis
数据库·redis·缓存
2501_941403762 小时前
人工智能与边缘计算:智能化应用的未来引擎
mongodb
叫致寒吧2 小时前
Tomcat详解
java·tomcat
p***92483 小时前
深入理解与实战SQL IFNULL()函数
数据库·sql·oracle
q***81645 小时前
MySQL:数据查询-limit
数据库·mysql
p***92485 小时前
DBeaver连接本地MySQL、创建数据库表的基础操作
数据库·mysql
S***26756 小时前
基于SpringBoot和Leaflet的行政区划地图掩膜效果实战
java·spring boot·后端
马剑威(威哥爱编程)6 小时前
鸿蒙6开发视频播放器的屏幕方向适配问题
java·音视频·harmonyos
JIngJaneIL6 小时前
社区互助|社区交易|基于springboot+vue的社区互助交易系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·社区互助
晚风吹人醒.6 小时前
缓存中间件Redis安装及功能演示、企业案例
linux·数据库·redis·ubuntu·缓存·中间件