![]()
2007年,纽约一家初创公司决定用JSON存数据时,全球关系型数据库(RDBMS,即传统表格型数据库)的市场份额超过80%。17年后,这家公司的文档数据库成了默认选项——不是因为它技术最先进,而是因为开发者懒得写表结构了。
Akshat Vig在QCon旧金山 keynote 上抛出一组数据:他和Andrew Davidson两人加起来在数据库行业干了快40年,见证过AWS从卖书转型云计算,也经历过MongoDB从"web-scale"梗图变成mission-critical(关键任务级)基础设施。但这场演讲的开场白直接泼冷水:「我不是来聊数据库的,是来聊这场运动怎么赢的。」
这场运动的两个主角:一个叫文档模型,一个叫社区。前者解决了对象-关系阻抗失配(object-relational impedance mismatch,即代码对象和数据库表格对不上的问题),后者把解决方案塞进了全球400多万开发者的工具箱。
从"无聊电影"到开发者叛逃
Vig的比喻很直接:数据库行业像部无聊电影,但剧情里有停电、有 drama、有角色成长。Andrew Davidson的补充更个人化——这个湾区长大的工程师,曾在火人节待了一周,去南亚发展中国家住了一年,回炉重造后才加入纽约的MongoDB。
他的职业轨迹本身就在解释文档模型的吸引力。在Google做全球地图运营时,地理数据的多层嵌套结构用传统表格存就是噩梦。文档模型允许你把一个地点的所有信息——坐标、标签、用户评论、实时交通——塞进一个JSON对象,查询时不用JOIN(联表查询,即跨表拼接数据)八张表。
这种"偷懒"的代价曾被关系型数据库阵营嘲笑。2010年前后,"MongoDB is web scale"的讽刺视频在YouTube疯传,调侃它牺牲一致性换速度。但开发者用脚投票:当移动应用爆发,数据 schema(结构定义)每周都在变,谁还有空 ALTER TABLE(修改表结构)?
Buckminster Fuller时刻:不是更好,是刚好够用
![]()
Davidson把文档模型比作Buckminster Fuller的穹顶设计——不是最优解,但是在特定约束下的最小可行解(MVP,即最小可行产品)。关系型数据库追求第三范式(3NF,即消除数据冗余的标准),文档模型问的是:你的应用真的需要那么多JOIN吗?
这个反问击中了敏捷开发的痛点。2015年Stack Overflow调查显示,MongoDB是开发者最想用的数据库第三名,仅次于PostgreSQL和Redis。到2023年,DB-Engines排名把它推到了数据库总榜第五,文档型数据库第一。
但Vig和Davidson反复强调的是运营卓越(operational excellence),不是技术参数。MongoDB的转折点不是某个功能发布,而是Atlas托管服务在2016年上线——开发者不用再自己搭集群、配副本、处理分片(sharding,即数据水平拆分)。
这个策略叫"monetizing convenience over control"(为便利性而非控制权付费)。开源软件的经典困境:社区版功能越来越强,企业怎么赚钱?MongoDB的答案是——把"麻烦事"做成服务。自动扩容、备份恢复、全球多区域部署,这些运维负担变成按量付费的云账单。
开源赛跑:从SSPL到AI时代的社区博弈
2018年的许可证变更(SSPL,服务器端公共许可证)是MongoDB最受争议的决定。核心条款:如果你把MongoDB作为服务对外提供,必须开源整个服务的代码。AWS的DocumentDB被迫重新实现API,社区一片哗然。
Davidson在现场没有回避这个伤疤。他的解释框架是"navigating the open-source race"(在开源赛跑中导航)——云厂商的托管服务正在吸干开源项目的商业血液,SSPL是防御性动作。代价是OSI(开源倡议组织)不承认它是开源许可证,MongoDB被踢出部分开源社区活动。
但数据给出了另一种叙事。SSPL变更后,MongoDB的Atlas收入从2019财年的2.7亿美元涨到2024财年的17亿美元,年复合增长率超过44%。社区版下载量没有断崖,反而因为AI应用爆发继续增长——向量搜索(vector search,即语义相似度查询)功能在2023年上线后,RAG(检索增强生成,即给大模型外挂知识库)场景成了新增长点。
![]()
Vig的观察更尖锐:「现在的数据库竞争不是功能清单对比,是谁能先跑到开发者的键盘上。」AI编码助手(GitHub Copilot、Cursor)的上下文窗口里,MongoDB的文档出现频率直接影响新项目的选型。社区运营从论坛答疑变成了LLM(大语言模型)训练数据的质量管控。
从梗图到关键任务:可靠性是怎么炼成的
2017年,MongoDB的上市招股书里还写着"部分客户将我们的产品用于mission-critical workloads"。2024年的措辞变成了"majority of our customers"。这个语义转变背后是无数生产事故的教训。
Vig在AWS的15年经历被反复调用。他参与过DynamoDB的早期建设,也处理过凌晨三点的P0级故障(最高优先级事故)。MongoDB的复制集(replica set)选举协议、事务ACID支持(原子性、一致性、隔离性、持久性)、可重试写入——这些功能不是炫技,是客户从"试试"到"敢用"的门槛。
一个细节:MongoDB 4.0发布多文档事务时,官方博客的标题是"MongoDB 4.0 makes ACID transactions a reality"。评论区最高赞是:"等等,你们之前没有吗?"这种认知滞后恰恰说明文档模型的早期成功靠的不是功能完备,而是场景精准。
Davidson的总结带着产品经理的冷幽默:「我们花了十年证明文档模型能做大,又花了五年证明它能做稳。现在的问题是,下一个十年要证明什么?」
演讲结束后的问答环节,有人举手问:如果今天重新设计MongoDB,还会选BSON(二进制JSON,MongoDB的存储格式)吗?Vig没有直接回答,只说了句:「BSON的缺陷我们都知道,但迁移成本是真实的。这就是社区和 consequence(后果)的关系——你做的每个决定都会长成基础设施。」
那个提问的人后来有没有得到答案,现场没有记录。但MongoDB 7.0的发布说明里,BSON解析器的性能优化仍然排在前列。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.