本文详细介绍如何在 Docker 中操作 MongoDB,包括如何进入命令行、进行用户认证、查看数据库和集合,以及常用的索引操作和其他高频使用的 MongoDB 方法。小白也能轻松上手
1. 在 Docker 中进入 MongoDB 命令行
-
进入运行 MongoDB 容器的命令行:
bashdocker exec -it <容器名称或ID> mongo
例如:
bashdocker exec -it mongodb_container mongo
-
切换到管理员数据库
admin
:javascriptuse admin
-
用户认证:
javascriptdb.auth("aidenmx", "qazx123") db.auth("aiden", "qazx123")
提示 :这里假设您的用户名为
aidenmx
和aiden
,密码为qazx123
。根据实际情况替换。通常只需一次认证。
2. 查看数据库和集合
-
显示所有数据库:
javascriptshow dbs
-
切换到某个数据库:
javascriptuse history
-
显示当前数据库的所有集合(表):
javascriptshow 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. 删除索引
-
删除单个索引:
javascriptdb.<集合名>.dropIndex("<索引名>")
获取索引名可通过
getIndexes()
查看。 -
删除集合中的所有索引:
javascriptdb.<集合名>.dropIndexes()
6. 查询相关操作
-
查询所有文档:
javascriptdb.<集合名>.find()
-
查询第一个文档:
javascriptdb.<集合名>.findOne()
-
条件查询:
javascriptdb.<集合名>.find({ <字段名>: <值> })
例如:
javascriptdb.sublist2.find({ applicationNumber: "123456" })
-
限制返回条数:
javascriptdb.<集合名>.find().limit(10)
-
排序查询:
javascriptdb.<集合名>.find().sort({ <字段名>: 1 })
1
表示升序,-1
表示降序。
7. 插入与删除操作
-
插入单个文档:
javascriptdb.<集合名>.insertOne({ <字段1>: <值1>, <字段2>: <值2> })
例如:
javascriptdb.sublist2.insertOne({ applicationNumber: "123456", classNumber: 5 })
-
删除符合条件的文档:
javascriptdb.<集合名>.deleteOne({ <字段名>: <值> })
例如:
javascriptdb.sublist2.deleteOne({ applicationNumber: "123456" })
-
删除所有文档:
javascriptdb.<集合名>.deleteMany({})
8. 更新操作
-
更新单个文档:
javascriptdb.<集合名>.updateOne( { <匹配条件> }, { $set: { <字段1>: <新值1>, <字段2>: <新值2> } } )
例如:
javascriptdb.sublist2.updateOne( { applicationNumber: "123456" }, { $set: { classNumber: 10 } } )
-
更新多个文档:
javascriptdb.<集合名>.updateMany( { <匹配条件> }, { $set: { <字段1>: <新值1>, <字段2>: <新值2> } } )
9. 数据统计
-
查看集合中文档数量:
javascriptdb.<集合名>.countDocuments()
-
按条件统计文档数量:
javascriptdb.<集合名>.countDocuments({ <字段名>: <值> })
例如:
javascriptdb.sublist2.countDocuments({ classNumber: 5 })
通过上述命令,您可以高效地操作 MongoDB 数据库。直接复制粘贴使用即可!