关键维度
| 维度 | MongoDB | PostgreSQL JSONB |
|---|---|---|
| 数据模型 | BSON 文档,模式灵活 | 关系表 + JSONB 列,混合建模 |
| 事务 | 多文档事务(副本集/分片集群) | 完整 ACID 与服务端逻辑 |
| 索引 | 多键/复合/文本/地理,按文档建 | JSONB 支持 GIN 表达式索引 |
| 扩展 | 原生分片与副本集 | 依赖分区表与中间件扩展 |
| 生态 | 驱动与云托管成熟 | SQL 工具、BI、迁移生态完整 |
示例
示例
-- PostgreSQL:对 JSONB 字段建 GIN 索引后按属性过滤
CREATE INDEX idx_orders_attr ON orders USING GIN (attrs);
SELECT id, attrs->>'channel' AS channel
FROM orders
WHERE attrs @> '{"channel": "app"}';已有关系型体系与强事务需求时,先用 JSONB 承载半结构化字段往往成本更低;文档数量级增长且查询模式以文档为单位时再考虑文档库。