数据库

Mongo-express:基于 Web 的 MongoDB 管理界面

Mongo-express 是一个基于 Express.js 的 Web-based MongoDB 管理界面,用于浏览数据库、集合、文档和执行查询。

Keeping this site alive takes effort — your support means everything.
無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分! 無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分!
Mongo-express:基于 Web 的 MongoDB 管理界面

MongoDB 的原生命令行 shell(mongosh)功能强大,但并非日常数据库管理最友好的界面。开发者经常发现自己需要一个可视化工具来浏览集合、检查文档、运行临时查询和管理索引——这些任务使用图形化界面效率更高。虽然 MongoDB Compass 提供了优秀的桌面工具,但在某些情况下,基于 Web 的管理界面更实用:无头服务器、共享开发环境、CI/CD 管线以及无法安装桌面软件的部署环境。

Mongo-express 是填补这一空缺最广泛采用的开源解决方案。它使用 Express.js 和 Node.js 构建,是一个轻量级、自包含的 Web 应用程序,可连接到 MongoDB 并通过任何现代浏览器提供全面的管理界面。拥有超过 6000 万次的 npm 下载量和 18 年的持续开发,它是开源生态系统中最经实战考验的数据库管理工具之一。

该工具的长寿证明了其设计理念:专注于做好一件事,保持简单,避免功能膨胀。Mongo-express 不会试图取代 MongoDB Compass 的每一个功能。相反,它专注于最常见的管理任务——浏览、查询、编辑和监控——并通过一个干净、功能齐全的界面来提供这些功能,加载速度快且运行可靠。

核心功能

Mongo-express 通过其 Web 界面提供了一套全面的数据库管理功能:

功能描述使用案例
数据库浏览器列出并导航服务器上的所有数据库快速探索数据概况
集合查看器使用分页和筛选功能浏览文档无需编写查询即可检查数据
文档编辑器以表格或 JSON 视图方式编辑文档无需 mongosh 即可修复数据问题
查询执行器运行临时 MongoDB 查询开发期间测试查询
索引管理器查看、创建和删除索引性能优化和架构变更
导入/导出导入和导出 JSON 与 CSV 数据数据迁移和备份
服务器状态查看数据库统计、集合大小和性能监控数据库健康状况
认证基本认证和连接字符串认证保护生产数据库的访问

部署选项

Mongo-express 根据你的基础设施支持多种部署方式:

部署方式命令最适用于
npm 全局npm install -g mongo-express本地开发、单一开发者
Dockerdocker run mongo-express容器化环境、CI/CD
Docker Compose与 MongoDB 一起作为栈的一部分多服务应用程序
Heroku自定义 buildpackPaaS 部署
KubernetesHelm chart大规模生产环境

Docker 快速入门

尝试 Mongo-express 最快的方式是使用 Docker,将其连接到 MongoDB 容器:

docker network create mongo-net
docker run -d --network mongo-net --name mongo mongo:7
docker run -it --rm --network mongo-net \
  -e ME_CONFIG_MONGODB_SERVER=mongo \
  -p 8081:8081 \
  mongo-express

架构与请求流程

下图展示了 Mongo-express 如何与 MongoDB 服务器和客户端浏览器交互:

Express.js 服务器充当浏览器和 MongoDB 之间的中间层。每个 HTTP 请求都会经过认证、路由到适当的处理器、转换为 MongoDB 驱动程序调用,并将结果呈现为 HTML 或 JSON。这种架构使 Mongo-express 易于扩展(添加路由和处理器)且易于保护(层叠中间件以实现认证、速率限制和审计记录)。

配置

Mongo-express 通过环境变量或 config.js 文件进行配置:

module.exports = {
  mongodb: {
    server: 'localhost',
    port: 27017,
    connectionString: 'mongodb://user:pass@localhost:27017/db',
  },
  site: {
    port: 8081,
    cookieSecret: 'your-secret-key',
    basicAuth: {
      username: 'admin',
      password: 'admin',
    },
  },
};

开始使用

要开始使用 Mongo-express,请访问 Mongo-express GitHub 仓库 获取安装说明、配置指南和版本信息。npm 包页面 提供最新版本和依赖信息。

常见问题

什么是 Mongo-express?

Mongo-express 是一个轻量级、基于 Web 的 MongoDB 管理界面,使用 Express.js 和 Node.js 构建。它提供图形化 UI,用于浏览数据库、查看和编辑文档、运行临时查询以及管理索引,无需使用 mongo shell 或 MongoDB Compass。

如何安装 Mongo-express?

Mongo-express 可通过 npm(npm install -g mongo-express)安装,或使用 Docker(docker run -it –rm -p 8081:8081 mongo-express)运行。配置通过环境变量或配置文件完成,指定 MongoDB 连接字符串和认证选项。

可以用 Mongo-express 做什么?

你可以浏览所有数据库和集合,以表格或 JSON 视图方式查看和编辑文档,创建和删除数据库与集合,管理索引,运行自定义查询,导入和导出 JSON/CSV 数据,以及监控服务器状态和数据库统计信息。

Mongo-express 适合生产环境使用吗?

Mongo-express 主要设计用于开发和管理任务。虽然可以用于管理生产数据库,但应始终部署在认证机制(内建或反向代理)之后,限制在受信任的网络中,并且在没有适当安全措施的情况下绝不直接暴露于公共互联网。

Mongo-express 与 MongoDB Compass 相比如何?

Mongo-express 基于 Web 且免费(MIT 许可),而 MongoDB Compass 需要下载桌面应用程序,并有付费层级才能使用高级功能。Mongo-express 非常适合服务器端环境、CI/CD 管线以及偏好可与数据库一起部署的浏览器型工具的用户。


延伸阅读

TAG
CATEGORIES