以下是一份?MongoDB 常用命令速查表,涵蓋數據庫、集合、文檔的增刪改查、索引管理、聚合操作等場景:
1. 數據庫操作
命令 | 說明 |
---|---|
show dbs | 查看所有數據庫 |
use <db-name> | 切換/創建數據庫(需插入數據后才會顯示) |
db.dropDatabase() | 刪除當前數據庫 |
2. 集合(Collection)操作
命令 | 說明 |
---|---|
show collections | 查看當前數據庫的所有集合 |
db.createCollection("<collection-name>") | 創建集合 |
db.<collection-name>.drop() | 刪除集合 |
3. 文檔(Document)的 CRUD
插入文檔
javascript
復制
// 插入單條文檔 db.users.insertOne({ name: "Alice", age: 25, role: "admin" });// 插入多條文檔 db.users.insertMany([{ name: "Bob", age: 30 },{ name: "Charlie", age: 28 } ]);
查詢文檔
javascript
復制
// 查詢所有文檔 db.users.find();// 條件查詢(等于) db.users.find({ age: 25 });// 條件查詢(范圍) db.users.find({ age: { $gt: 25 } }); // 大于25 db.users.find({ age: { $in: [25, 30] } }); // 在指定范圍內// 限制返回字段(1表示包含,0表示排除) db.users.find({}, { name: 1, _id: 0 });// 分頁與排序 db.users.find().sort({ age: -1 }).skip(10).limit(5); // 按年齡倒序,跳過前10條,取5條
更新文檔
javascript
復制
// 更新單條文檔 db.users.updateOne({ name: "Alice" },{ $set: { age: 26 } } // 更新字段 );// 更新多條文檔 db.users.updateMany({ role: "user" },{ $set: { status: "active" } } );// 新增字段或復雜操作 db.users.updateOne({ name: "Bob" },{ $inc: { age: 1 }, $push: { tags: "vip" } } // 年齡+1,添加數組元素 );
刪除文檔
javascript
復制
// 刪除單條文檔 db.users.deleteOne({ name: "Alice" });// 刪除多條文檔 db.users.deleteMany({ age: { $lt: 20 } });
4. 索引管理
命令 | 說明 |
---|---|
db.<collection-name>.createIndex({ field: 1 }) | 創建升序索引(1為升序,-1為降序) |
db.<collection-name>.getIndexes() | 查看集合所有索引 |
db.<collection-name>.dropIndex("index-name") | 刪除指定索引 |
5. 聚合操作(Aggregation)
javascript
復制
// 按角色分組統計平均年齡 db.users.aggregate([{ $group: { _id: "$role", avgAge: { $avg: "$age" } } } ]);// 多階段管道:過濾 + 分組 + 排序 db.orders.aggregate([{ $match: { status: "completed" } }, // 篩選狀態為完成的訂單{ $group: { _id: "$product", total: { $sum: "$amount" } } }, // 按商品分組統計總金額{ $sort: { total: -1 } } // 按總金額降序排列 ]);
6. 用戶與權限管理
命令 | 說明 |
---|---|
db.createUser({ user: "admin", pwd: "123456", roles: ["root"] }) | 創建管理員用戶 |
db.grantRolesToUser("user1", ["readWrite"]) | 為用戶分配角色 |
db.getUsers() | 查看當前數據庫用戶 |
7. 數據備份與恢復
bash
復制
# 備份數據庫(命令行工具) mongodump --db mydb --out /backup/# 恢復數據庫 mongorestore --db mydb /backup/mydb/
8. 實用工具命令
命令 | 說明 |
---|---|
db.stats() | 查看當前數據庫狀態(集合數、存儲大小等) |
db.<collection-name>.stats() | 查看集合的詳細統計信息 |
db.<collection-name>.countDocuments({ query }) | 統計符合條件的文檔數量 |
注意事項
-
MongoDB 默認不啟用身份驗證,生產環境需配置用戶權限。
-
更新和刪除操作建議先查詢確認條件,避免誤操作。
-
聚合管道(
aggregate
)支持復雜數據處理,靈活但需注意性能。