字节笔记本
2026年2月22日
MongoDB CLI 工具推荐:mongosh 完全指南
对于需要与 MongoDB 交互的开发者来说,选择一个趁手的命令行工具至关重要。如果你习惯了 PostgreSQL 生态中 pgcli 那种智能补全和语法高亮的体验,可能会好奇 MongoDB 世界有没有类似的工具。
本文将介绍 MongoDB CLI 工具的最佳选择,帮助你找到最适合自己的方案。
官方推荐:mongosh
mongosh 是 MongoDB 官方推出的现代 Shell,作为传统 mongo 命令的替代品,它提供了更丰富的功能和更好的开发体验。
核心特性
- 语法高亮:代码着色让查询语句更易读
- 智能补全:自动提示集合名、字段名和命令
- 命令历史:保存和快速调用之前的操作
- 多平台支持:Windows、macOS、Linux 全兼容
安装方法
macOS (Homebrew):
brew install mongosh跨平台 (npm):
npm install -g mongosh连接数据库
# 本地连接
mongosh
# 带认证信息连接
mongosh "mongodb://user:pass@host:27017/dbname"
# MongoDB Atlas 连接
mongosh "mongodb+srv://user:pass@cluster.mongodb.net/dbname"常用操作示例
# 查看所有数据库
show dbs
# 切换数据库
use mydb
# 查询文档(格式化输出)
db.collection.find().pretty()
# 插入单条文档
db.collection.insertOne({key: "value"})
# 插入多条文档
db.collection.insertMany([{a: 1}, {a: 2}])
# 更新文档
db.collection.updateOne({key: "value"}, {$set: {key: "newValue"}})
# 删除文档
db.collection.deleteOne({key: "value"})
# 创建索引
db.collection.createIndex({field: 1})
# 聚合查询
db.collection.aggregate([{$match: {status: "active"}}, {$group: {_id: "$category", count: {$sum: 1}}}])其他工具选择
MongoDB Compass
官方提供的图形化界面工具,适合:
- 可视化查看集合结构和文档
- 通过 UI 构建复杂查询
- 性能分析和索引优化
- 数据导入导出操作
虽然是 GUI 工具,但 Compass 内置了嵌入式 Shell,可以执行 mongosh 命令。
mongocli
MongoDB 官方运维管理工具,主要功能:
- 云集群管理(Atlas、Ops Manager)
- 自动化部署和配置
- 监控和告警设置
- 备份恢复操作
适合 DBA 和运维人员,开发场景下 mongosh 更实用。
mongotop / mongostat
官方自带的监控工具:
# 实时查看集合级别的读写耗时
mongotop --uri="mongodb://localhost:27017"
# 监控数据库状态(每秒刷新)
mongostat --uri="mongodb://localhost:27017"工具对比
| 工具 | 类型 | 适用场景 | 智能补全 | 语法高亮 |
|---|---|---|---|---|
| mongosh | CLI | 日常开发 | ✓ | ✓ |
| Compass | GUI | 可视化操作 | - | ✓ |
| mongocli | CLI | 运维管理 | ✓ | - |
| mongotop | CLI | 性能监控 | - | - |
推荐方案
日常开发:直接使用 mongosh
它已经内置了自动补全和语法高亮,交互体验接近 pgcli。对于 MongoDB Atlas 用户,这也是官方推荐的连接方式。
可视化需求:MongoDB Compass
当需要查看文档结构、构建复杂查询或进行性能分析时,Compass 的图形界面更高效。
运维管理:mongocli + 监控工具
云集群管理、自动化部署等场景下,mongocli 提供了完整的命令行管理能力。
总结
MongoDB 生态虽然没有完全等同于 pgcli 的第三方工具,但官方提供的 mongosh 已经足够好用。它集成了现代 Shell 应有的特性,是 MongoDB 开发者的首选工具。
如果你正在使用 MongoDB Atlas,直接在连接向导中选择 "Connect with MongoDB Shell" 即可获取连接字符串,复制到终端就能开始使用。