MongoDB常用命令大全

MongoDB 常用运维命令清单

每条命令应明确在哪个数据库(use xxx)下执行,避免值班或救火时因为库选错导致误判。

说明:

  • 🌐 表示 任意库均可执行
  • 🔐 表示 必须 use admin
  • 🧬 表示 必须 use local

一、基础连接与实例状态(🌐)

1. 连接 MongoDB

bash 复制代码
mongo --host 127.0.0.1 --port 27017
mongo "mongodb://user:pwd@ip:port/admin"

2. 查看 MongoDB 版本(🌐)

javascript 复制代码
db.version()
db.serverBuildInfo()

3. 实例是否存活

bash 复制代码
ps -ef | grep mongod
ss -lntp | grep mongod

二、副本集运维(高频)

4. 查看副本集整体状态(🌐)

javascript 复制代码
rs.status()

5. 查看副本集配置(🌐)

javascript 复制代码
rs.conf()

6. 查看当前节点角色(🌐)

javascript 复制代码
db.isMaster()   // MongoDB 4.x
// MongoDB 5.x+:
db.hello()

7. 查看各节点同步延迟(🌐)

javascript 复制代码
rs.printSlaveReplicationInfo()

8. 重新配置副本集(⚠️ 高风险,🌐)

javascript 复制代码
rs.reconfig(cfg, { force: true })

三、性能与慢查询分析

9. 查看当前正在执行的操作(🔐 use admin)

javascript 复制代码
use admin
db.currentOp()

10. 终止慢操作(🔐 use admin)

javascript 复制代码
use admin
db.killOp(opid)

11. 查看慢查询(业务库)

javascript 复制代码
use 业务数据库名
db.system.profile.find().sort({ ts: -1 }).limit(5)

12. explain 查询执行计划(业务库)

javascript 复制代码
use 业务数据库名
db.业务表名.find(query).explain("executionStats")

四、缓存、内存与连接

13. WiredTiger Cache 使用情况(🌐)

javascript 复制代码
db.serverStatus().wiredTiger.cache

14. 实例内存情况(🌐)

javascript 复制代码
db.serverStatus().mem

15. 当前连接数(🌐)

javascript 复制代码
db.serverStatus().connections

五、磁盘与数据规模

16. 查看数据库整体大小(目标库)

javascript 复制代码
use 目标库名
db.stats(1024 * 1024)   // 单位:MB

17. 查看集合大小(目标库)

javascript 复制代码
db.collection.stats(1024 * 1024)

18. 查看索引占用空间(目标库)

javascript 复制代码
db.collection.totalIndexSize()

六、Oplog 与复制窗口

19. 查看 oplog 起止时间(🧬)

javascript 复制代码
use local
db.oplog.rs.find().sort({ $natural: -1 }).limit(1)
db.oplog.rs.find().sort({ $natural: 1 }).limit(1)

20. 查看 oplog 时间窗口(🌐)

javascript 复制代码
rs.printReplicationInfo()

七、分片集群相关

21. 查看分片集群状态(🔐)

javascript 复制代码
use admin### 22. 查看 Balancer 状态(🔐) 查看 balancer 状态(🔐)
```javascript
use admin
sh.getBa### 23. 手动控制 Balancer(🔐)3. 手动控制 balancer(🔐)
```javascript
use admin
sh.startBalancer()
sh.stopBalancer()

八、用户与权限管理

24. 创建用户

javascript 复制代码
use 库名
db.createUser({
  user: "用户名",
  pwd: "***",
  roles: []
})

25. 更改用户

javascript 复制代码
use 库名
1、更改密码
db.changeUserPassword("用户名", "新密码")
2、全量更改
db.updateUser(
  "用户名",
  {
    pwd: "新密码!",(不写这条就不更改密码)
    roles: [
      { role: "readWrite", db: "orderdb" }
    ]
  }
)

26. 删除用户

javascript 复制代码
use 库名
db.dropUser("用户名")
``官网地址:

https://docs.mongodb.com/manual/reference/program/mongodump/

https://docs.mongodb.com/manual/reference/program/mongorestore/rogram/mongorestore/

### 27. 备份 mongodump
```bash
# 全库备份到指定目录
mongodump \
  --host 127.0.0.1 --port 27017 \
  -u your_user -p 'your_password' \
  --authenticationDatabase admin \
  --out /data/backup/$(date +%F) \
  --gzip \
  --oplog
# 单库备份
mongodump \
  --host 127.0.0.1 --port 27017 \
  -u your_user -p 'your_password' \
  --authenticationDatabase admin \
  --db orderdb \
  --out /data/backup/orderdb_$(date +%F) \
  --gzip

28. 恢复 mongorestore

bash 复制代码
# 全库恢复(覆盖已有数据)
mongorestore \
  --host 127.0.0.1 --port 27017 \
  -u your_user -p 'your_password' \
  --authenticationDatabase admin \
  --drop \
  --gzip \
  /data/backup/2026-01-13/
# 单库恢复
mongorestore \
  --host 127.0.0.1 --port 27017 \
  -u your_user -p 'your_password' \
  --authenticationDatabase admin \
  --db orderdb \
  --drop \
  --gzip \
  /data/backup/orderdb_2026-01-13/

十、日志与配置

29. 查看日志组件信息

javascript 复制代码
use admin
db.serverStatus().log

30. 查看运行时参数

javascript 复制代码
use admin
db.adminCommand({ getParameter: '*' })
相关推荐
MayBaymax2 小时前
MongoDB 基础概念
java·数据库·mongodb
DBA小马哥18 小时前
MongoDB 迁移切流回滚怎么做?停机窗口、增量同步、数据校验全套检查清单
mongodb·迁移学习
我是唐青枫3 天前
MongoDB 从零到能用:文档、CRUD、聚合与 Node.js 实战
mongodb
唐青枫4 天前
MongoDB 从零到能用:文档、CRUD、聚合与 Node.js 实战
mongodb
wno7044 天前
Spring Boot整合MongoDB
spring boot·后端·mongodb
鸽芷咕5 天前
MongoDB 鸿蒙 PC 适配全记录:从 Bazel 交叉编译到 HNP 原生数据库服务
数据库·mongodb·harmonyos
DBA小马哥7 天前
MongoDB 数据同步怎么做?oplog、Change Streams、同步工具 4 种方案一次讲清(附踩坑清单)
数据库·mongodb
java_logo7 天前
Docker 部署 MongoDB Community Server:轻松搭建文档数据库平台
数据库·mongodb·docker·nosql·文档数据库·轩辕镜像·mongodb-server
Horn Still Sounds8 天前
51单片机入门:硬件基础、位运算、数码管动态显示完整梳理
嵌入式硬件·mongodb·51单片机