MongoDB 常用命令速查表

把 MongoDB 日常最常敲的命令按数据库、集合、文档、索引和聚合分组整理,排障现场直接复制改参数即可。

数据库·共 43 条命令·最后更新 2026-07-19
返回 数据库

数据库操作 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 个节点保证高可用,奇数节点避免脑裂。