字节笔记本

2026年2月22日

MongoDB CLI 工具推荐:mongosh 完全指南

对于需要与 MongoDB 交互的开发者来说,选择一个趁手的命令行工具至关重要。如果你习惯了 PostgreSQL 生态中 pgcli 那种智能补全和语法高亮的体验,可能会好奇 MongoDB 世界有没有类似的工具。

本文将介绍 MongoDB CLI 工具的最佳选择,帮助你找到最适合自己的方案。

官方推荐:mongosh

mongosh 是 MongoDB 官方推出的现代 Shell,作为传统 mongo 命令的替代品,它提供了更丰富的功能和更好的开发体验。

核心特性

  • 语法高亮:代码着色让查询语句更易读
  • 智能补全:自动提示集合名、字段名和命令
  • 命令历史:保存和快速调用之前的操作
  • 多平台支持:Windows、macOS、Linux 全兼容

安装方法

macOS (Homebrew)

bash
brew install mongosh

跨平台 (npm)

bash
npm install -g mongosh

连接数据库

bash
# 本地连接
mongosh

# 带认证信息连接
mongosh "mongodb://user:pass@host:27017/dbname"

# MongoDB Atlas 连接
mongosh "mongodb+srv://user:pass@cluster.mongodb.net/dbname"

常用操作示例

bash
# 查看所有数据库
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

官方自带的监控工具:

bash
# 实时查看集合级别的读写耗时
mongotop --uri="mongodb://localhost:27017"

# 监控数据库状态(每秒刷新)
mongostat --uri="mongodb://localhost:27017"

工具对比

工具类型适用场景智能补全语法高亮
mongoshCLI日常开发
CompassGUI可视化操作-
mongocliCLI运维管理-
mongotopCLI性能监控--

推荐方案

日常开发:直接使用 mongosh

它已经内置了自动补全和语法高亮,交互体验接近 pgcli。对于 MongoDB Atlas 用户,这也是官方推荐的连接方式。

可视化需求:MongoDB Compass

当需要查看文档结构、构建复杂查询或进行性能分析时,Compass 的图形界面更高效。

运维管理:mongocli + 监控工具

云集群管理、自动化部署等场景下,mongocli 提供了完整的命令行管理能力。

总结

MongoDB 生态虽然没有完全等同于 pgcli 的第三方工具,但官方提供的 mongosh 已经足够好用。它集成了现代 Shell 应有的特性,是 MongoDB 开发者的首选工具。

如果你正在使用 MongoDB Atlas,直接在连接向导中选择 "Connect with MongoDB Shell" 即可获取连接字符串,复制到终端就能开始使用。

分享: