MongoDB 常用命令速查表
把 MongoDB 日常最常敲的命令按数据库、集合、文档、索引和聚合分组整理,排障现场直接复制改参数即可。
返回 数据库数据库操作 Database 6
show dbs列出所有数据库
use dbname切换到指定数据库(不存在会自动创建)
db查看当前数据库
db.stats()查看当前数据库统计信息
db.dropDatabase()删除当前数据库
show collections列出当前库的所有集合
文档操作 Document CRUD 9
db.collection.insertOne({name: "tom"})插入单个文档
db.collection.insertMany([{...}, {...}])批量插入文档
db.collection.find()查询所有文档
db.collection.find({age: {$gt: 18}})条件查询
db.collection.findOne({name: "tom"})查询单个文档
db.collection.updateOne({name: "tom"}, {$set: {age: 20}})更新单个文档
db.collection.updateMany({age: {$lt: 18}}, {$set: {status: "minor"}})批量更新
db.collection.deleteOne({name: "tom"})删除单个文档
db.collection.deleteMany({age: {$lt: 18}})批量删除
查询操作符 Query Operators 8
{field: value}精确匹配
{field: {$gt: value}}大于($gte 大于等于)
{field: {$lt: value}}小于($lte 小于等于)
{field: {$ne: value}}不等于
{field: {$in: [v1, v2]}}在列表中
{$and: [{...}, {...}]}AND 条件
{$or: [{...}, {...}]}OR 条件
{field: /regex/i}正则匹配
索引管理 Index 6
db.collection.createIndex({field: 1})创建升序索引(-1 降序)
db.collection.createIndex({f1: 1, f2: 1})复合索引
db.collection.createIndex({field: 1}, {unique: true})唯一索引
db.collection.createIndex({field: 1}, {expireAfterSeconds: 3600})TTL 索引(自动过期)
db.collection.getIndexes()查看集合所有索引
db.collection.dropIndex("index_name")删除索引
聚合管道 Aggregation 7
db.collection.aggregate([{$match: {age: {$gt: 18}}}])过滤阶段
{$group: {_id: "$field", count: {$sum: 1}}}分组统计
{$project: {name: 1, _id: 0}}字段投影
{$sort: {field: -1}}排序
{$limit: 10} / {$skip: 20}限制数量 / 跳过记录
{$unwind: "$arrayField"}展开数组字段
{$lookup: {from: "other", localField: "id", foreignField: "_id", as: "joined"}}关联查询(类似 JOIN)
复制与分片 Replication & Sharding 7
rs.status()查看复制集状态
rs.conf()查看复制集配置
rs.initiate()初始化复制集
rs.add("host:port")添加成员
rs.remove("host:port")移除成员
sh.status()查看分片集群状态
sh.enableSharding("dbname")启用数据库分片
💡 提示
- MongoDB 默认不限制 schema,但建议用 Mongoose 等 ORM 做数据校验。
- 查询时避免全表扫描,大集合务必建索引,用 explain() 查看执行计划。
- 复制集至少 3 个节点保证高可用,奇数节点避免脑裂。