以下是一份 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
)支持复杂数据处理,灵活但需注意性能。