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 实例中的所有数据库及其存储大小。这个命令对于数据库管理和监控非常有用。
命令语法
show dbs;
命令说明
- 该命令会显示所有非空数据库
- 每个数据库会显示其名称和占用空间大小(以MB为单位)
- 系统默认会显示三个数据库:
- admin:存储用户权限信息
- local:存储本地单服务器特定数据
- config:存储分片集群配置信息
示例输出
admin 0.000GB
config 0.000GB
local 0.000GB
mydb 0.045GB
test 0.002GB
注意事项
- 新创建的数据库如果没有数据,不会显示在列表中
- 需要具有适当的权限才能查看所有数据库
- 在分片集群中,该命令只显示主分片上的数据库
相关命令
use <dbname>
:切换到指定数据库db.dropDatabase()
:删除当前数据库db.stats()
:查看当前数据库的统计信息
我们启动一个连接的Shell,进行测试:
切换数据库
在 MongoDB 中,use
命令用于切换当前操作的数据库。这个命令既可用于创建新数据库,也可用于切换到已存在的数据库。
语法说明
use database_name;
其中:
database_name
是目标数据库的名称- 如果数据库不存在,MongoDB 会在第一次向该数据库写入数据时自动创建它
使用示例
- 切换到已存在的 “test” 数据库:
use test;
- 创建并切换到新数据库 “mydb”:
use mydb;
注意事项
- 切换数据库后,所有后续操作(如集合创建、数据插入等)都将在该数据库上执行
- 要查看当前正在使用的数据库,可以使用
db
命令 - 要列出所有数据库,可以使用
show dbs
命令 - 新创建的数据库只有在插入数据后才会显示在数据库列表中
应用场景
- 开发过程中需要操作不同的数据库
- 测试环境与生产环境的数据库切换
- 多租户应用中的数据库隔离
比如我这里:
use local;
创建集合
基本语法
在MongoDB中,可以使用db.createCollection()
方法来创建一个新的集合。基础语法如下:
db.createCollection(name, options)
name
:要创建的集合名称(字符串类型)options
:可选参数,用于指定集合的配置选项
创建wzk集合示例
db.createCollection("wzk")
这个命令会在当前数据库中创建一个名为"wzk"的集合。如果创建成功,MongoDB会返回:
{ "ok" : 1 }
可选参数说明
可以为集合指定额外的配置选项,例如:
db.createCollection("wzk", {capped: true, // 是否为固定集合size: 100000, // 固定集合的最大大小(字节)max: 500 // 固定集合允许的最大文档数
})
实际应用场景
- 日志存储:创建固定集合(capped collection)来存储日志,自动淘汰旧数据
- 临时数据:为特定业务创建专用集合
- 数据分片:为分片集群创建初始集合
注意事项
- 集合名称区分大小写
- 集合名称不能包含特殊字符(如$)
- 如果集合已存在,该命令不会覆盖原有集合
查看集合
在 MongoDB 中,集合(Collection)类似于关系型数据库中的表(Table)。要查看当前数据库中的所有集合,可以使用以下命令:
show tables;
或者
show collections;
说明:
- 这两个命令功能完全相同,都会显示当前数据库中的所有集合名称
- 使用前需要先选择数据库(通过
use 数据库名
命令) - 显示结果不包括系统集合(如system.indexes),要查看系统集合需要使用
db.getCollectionNames()
示例:
假设当前数据库为"test",包含三个集合:users, products, orders
执行命令后会显示:
> show collections;
users
products
orders
其他相关命令:
# 查看集合详细信息(包括系统集合)
db.getCollectionInfos()# 查看特定集合的状态信息
db.collection.stats()
删除集合
语法说明
在MongoDB中删除集合可以使用db.collection.drop()
方法。该方法会完全删除指定的集合及其所有文档、索引等关联数据。
基本语法:
db.<collection_name>.drop()
参数说明
collection_name
:要删除的集合名称
执行示例
db.wzk.drop();
返回值
- 成功删除时返回
true
- 集合不存在时返回
false
注意事项
- 删除操作不可逆,执行前请确认数据已备份或不再需要
- 删除集合会同时删除该集合的所有索引
- 需要具备相应的数据库权限才能执行此操作
- 在生产环境执行前建议先确认集合大小:
db.wzk.stats()
替代方案
如果只是想清空集合数据而保留集合结构,可以考虑使用:
db.wzk.deleteMany({})
应用场景
- 测试环境数据清理
- 重构数据库结构
- 临时数据清理
- 数据迁移前的准备工作
删除掉集合
删除当前数据库
db.dropDatabase()
是 MongoDB 中用于删除当前所在数据库的命令。这个命令会永久删除整个数据库及其所有集合和文档,执行前请务必确认。
使用说明
- 基本语法:
db.dropDatabase()
-
执行步骤:
- 首先通过
use
命令切换到目标数据库 - 然后执行
db.dropDatabase()
- 命令会返回删除操作的结果信息
- 首先通过
-
示例:
> use testdb # 切换到testdb数据库
switched to db testdb
> db.dropDatabase() # 删除当前数据库
{ "dropped" : "testdb", "ok" : 1 }
-
注意事项:
- 删除操作不可逆
- 需要具有足够的权限
- 在生产环境使用时需特别谨慎
- 建议在执行前先备份重要数据
-
应用场景:
- 测试环境重置
- 清理废弃数据库
- 开发环境重建数据结构
-
替代方案:
- 如果只是想清空数据而不删除数据库,可以考虑使用
db.collection.drop()
逐个删除集合 - 或者使用
db.collection.remove({})
清空集合内的文档
- 如果只是想清空数据而不删除数据库,可以考虑使用