PostgreSQL JSONB 实战:替代 MongoDB 的 5 个场景
引言 "商品表要加扩展属性,每个品类的字段都不一样,手机有内存和屏幕、服装有尺码和颜色、食品有保质期——要不我们引入 MongoDB 吧?" 这句话在架构评审会上出现过无数次。听起来很合理:灵活结构、文档存储、不用改表。但真把 MongoDB 引进来之后,团队往往在第三个月开始还债:商品基础信息在 PG、扩展属性在 Mongo,下单事务跨两个库没法保证一致;报表要 JOIN 订单和商品属性,只能在应用层拼;运维多一套副本集、备份、监控,DBA 又是另一套技能栈。 "有半结构化数据"不等于"需要一个文档数据库"。PostgreSQL 的 JSONB 类型把"文档的灵活性"和"关系数据库的能力"合在了一个库里:JSON 可以存任意结构,同时享受强类型校验、GIN 任意键索引、标准 SQL 查询和真正的 ACID 事务——商品基础列和扩展 JSON 在同一行、同一事务、同一条 JOIN 语句里。这篇文章讲清 JSONB 的真实能力边界和五个落地场景,回答那个反复出现的问题:到底什么时候该用 JSONB 扛住,什么时候才真的需要 MongoDB。 一、先搞清楚:JSONB 到底是什么,和 M....