文章目录MongoDB28000 Star 的数据库聊聊它为什么还能打两个核心组件为什么选 MongoDB安装和使用驱动和生态哪些场景适合注意事项MongoDB28000 Star 的数据库聊聊它为什么还能打MongoDB 这个项目程序员基本都听过。GitHub 上 28000 多 Star开源十几年了到现在还是很多公司的首选数据库。我这几年用过不少数据库MySQL、PostgreSQL、Redis 都碰过但 MongoDB 始终占着一席之地。今天聊聊它到底好在哪哪些场景适合用它。两个核心组件MongoDB 的架构不复杂主要就两个东西mongod 和 mongos。mongod 是数据库本体负责存数据、处理查询。mongos 是分片路由器数据量大了需要分散到多台机器上时它来决定数据往哪写、从哪读。这种设计让 MongoDB 既能单机跑小项目也能集群撑大业务。为什么选 MongoDB用文档数据库最大的好处是灵活。关系型数据库要先建表、定字段改个结构还得迁移。MongoDB 直接存 JSON 格式的数据字段随时加减不用提前规划。做快速迭代的项目这个优势很明显。我之前做过一个电商项目商品属性五花八门有的有颜色有的有尺寸有的有材质。用 MySQL 的话要么建一堆关联表要么用 JSON 字段存那跟直接用 MongoDB 有啥区别。最后选了 MongoDB开发效率高了不少。安装和使用安装方式挺多的。官网下载、Homebrew、Docker 都行brew tap mongodb/brew docker pull mongodb/mongodb-community-server装完直接启动 mongod用 mongosh 连上去就能操作。Shell 交互体验不错写个查询、插条数据几行命令搞定。Compass 是官方的图形化工具装完 MongoDB 自带。不想敲命令的话用 Compass 看数据、做查询体验跟 phpMyAdmin 差不多。驱动和生态几乎所有主流语言都有 MongoDB 驱动Python、Java、Node.js、Go、C#文档里都有链接。社区活跃遇到问题搜一下基本都能找到答案。官方文档写得也算清楚从入门到高级用法都有覆盖。MongoDB University 上还有免费课程想系统学的话可以看看。哪些场景适合几个典型场景内容管理系统文章、评论这类结构不固定的数据MongoDB 存着舒服日志和事件数据量大、格式可能变化文档数据库比关系型灵活快速原型开发不用建表直接存迭代快缓存层配合 Redis 用MongoDB 做持久化Redis 做热数据不太适合的场景也有。强事务要求的金融系统还是 PostgreSQL 或 MySQL 更稳。数据关系特别复杂的场景关联查询多的话MongoDB 的 $lookup 不如 SQL 的 JOIN 好用。注意事项MongoDB 默认不开启认证生产环境一定要配好权限。我见过有人裸跑 MongoDB 被扫到数据泄露的挺冤的。备份也要做好。虽然 MongoDB 有 replica set但逻辑备份还是得定期做。mongodump 和 mongorestore 是官方工具够用。版本选择上建议用最新的稳定版。老版本有些已知问题社区也不太维护了。MongoDB 不是万能的但它解决的那些问题确实解决了。灵活的数据模型、简单的 API、活跃的社区让它在文档数据库这个赛道上一直跑在前面。28000 多 Star 不是白来的是开发者们用脚投票的结果。如果你在选数据库项目需求里有「结构不确定」「需要快速迭代」「数据量会增长」这几个关键词MongoDB 值得试试。果你在选数据库项目需求里有「结构不确定」「需要快速迭代」「数据量会增长」这几个关键词MongoDB 值得试试。