本文詳細介紹如何在 Docker 中操作 MongoDB,包括如何進入命令行、進行用戶認證、查看數據庫和集合,以及常用的索引操作和其他高頻使用的 MongoDB 方法。小白也能輕松上手
1. 在 Docker 中進入 MongoDB 命令行
-
進入運行 MongoDB 容器的命令行:
docker exec -it <容器名稱或ID> mongo
例如:
docker exec -it mongodb_container mongo
-
切換到管理員數據庫
admin
:use admin
-
用戶認證:
db.auth("aidenmx", "qazx123") db.auth("aiden", "qazx123")
提示:這里假設您的用戶名為
aidenmx
和aiden
,密碼為qazx123
。根據實際情況替換。通常只需一次認證。
2. 查看數據庫和集合
-
顯示所有數據庫:
show dbs
-
切換到某個數據庫:
use history
-
顯示當前數據庫的所有集合(表):
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. 刪除索引
-
刪除單個索引:
db.<集合名>.dropIndex("<索引名>")
獲取索引名可通過
getIndexes()
查看。 -
刪除集合中的所有索引:
db.<集合名>.dropIndexes()
6. 查詢相關操作
-
查詢所有文檔:
db.<集合名>.find()
-
查詢第一個文檔:
db.<集合名>.findOne()
-
條件查詢:
db.<集合名>.find({ <字段名>: <值> })
例如:
db.sublist2.find({ applicationNumber: "123456" })
-
限制返回條數:
db.<集合名>.find().limit(10)
-
排序查詢:
db.<集合名>.find().sort({ <字段名>: 1 })
1
表示升序,-1
表示降序。
7. 插入與刪除操作
-
插入單個文檔:
db.<集合名>.insertOne({ <字段1>: <值1>, <字段2>: <值2> })
例如:
db.sublist2.insertOne({ applicationNumber: "123456", classNumber: 5 })
-
刪除符合條件的文檔:
db.<集合名>.deleteOne({ <字段名>: <值> })
例如:
db.sublist2.deleteOne({ applicationNumber: "123456" })
-
刪除所有文檔:
db.<集合名>.deleteMany({})
8. 更新操作
-
更新單個文檔:
db.<集合名>.updateOne({ <匹配條件> },{ $set: { <字段1>: <新值1>, <字段2>: <新值2> } } )
例如:
db.sublist2.updateOne({ applicationNumber: "123456" },{ $set: { classNumber: 10 } } )
-
更新多個文檔:
db.<集合名>.updateMany({ <匹配條件> },{ $set: { <字段1>: <新值1>, <字段2>: <新值2> } } )
9. 數據統計
-
查看集合中文檔數量:
db.<集合名>.countDocuments()
-
按條件統計文檔數量:
db.<集合名>.countDocuments({ <字段名>: <值> })
例如:
db.sublist2.countDocuments({ classNumber: 5 })
通過上述命令,您可以高效地操作 MongoDB 數據庫。直接復制粘貼使用即可!