Woovi 为什么使用 MongoDB?

2025-06-07

Woovi 为什么使用 MongoDB?

本文解释了 Woovi 在 MongoDB 之上构建金融科技的决策。

为什么选择 MongoDB?

我认为,您可以选择用于构建初创企业的最佳两个通用数据库是 MongoDB 或 PostgreSQL。

我们决定采用 MongoDB 有几个原因,概述如下。

数据库迁移

当您构建新产品时,您的数据建模和模式将会发展,并且您需要执行数据库迁移以确保您的代码库仅处理这些模式的一个版本。

使用 SQL 时,您需要执行两种类型的迁移:结构迁移和数据迁移。

结构迁移是指添加、修改或删除数据库模式的操作。通常使用 SQL DDL 进行。

数据迁移是指从一种数据格式迁移到另一种数据格式。这就像在某些集合的某些项中运行.map操作。通常,脚本会使用数据库游标。

使用 MongoDB 时,我们无需关心结构迁移,只需关注数据迁移。无需上下迁移,只需继续操作即可。

无需 ORM

大多数使用 SQL 的项目都使用 ORM 而不是编写纯 SQL。ORM
是一种糟糕的抽象,会生成未优化的查询。
在大多数编程语言中,编写纯 SQL 的 DX 并不是最好的。

使用 MongoDB,您只需mongoose定义您的模式并使用查找、保存和聚合来执行查询和迁移。

数据库建模

当您在 MongoDB 中进行数据库建模时,您会更加关注产品将执行的工作负载,您会更加关注如何读取数据,而不是创建大量表和关系。

使用 MongoDB,您可以用比使用 SQL 的交易对手更少的表/集合来实现相同的数据建模。
最终,您将获得一个更简单的模型。

在早期阶段工作时,您需要对数据模型进行大量迭代,直到找到可行的模型,MongoDB 可以轻松实现迭代。

另一个好处是,您可以专注于更解耦的建模,减少连接/查找操作。如果您想将系统拆分成多个微服务,这将在规模化方面为您提供帮助。

解耦的数据模型创建了解耦的代码库。

数据库扩展

MongoDB 比 PostgreSQL 更容易扩展。设置副本集或分片比使用 PG 更容易。但
两者的数据库扩展都很困难。

您还可以在 BI 系统(如元数据库)中使用隐藏副本

索引

MongoDB 有许多类型的索引来支持许多用例。

  • 单字段索引:按单个字段过滤时)
  • 复合字段索引:同时按多个字段进行过滤时https://emptysqua.re/blog/optimizing-mongodb-compound-indexes/
  • 多键索引:数组字段文本索引:在同一集合中的多个字段中进行全文搜索
  • 通配符索引:处理元数据,无模式设计,过滤您尚不知道的字段
  • 地理空间索引:按位置、附近、交叉路口等进行过滤
  • 生存时间索引

非结构化数据

NoSQL 擅长存储可在以后处理的非结构化数据。

变更流

MongoDB 变更流支持变更数据捕获,从而可以将 MongoDB 数据同步到其他系统,例如更新物化视图、更新弹性搜索数据以及支持对 WebSockets 的实时更新。

综上所述

MongoDB 是一款非常适合初创公司的数据库,它可以在需要时处理扩展。
随着产品规模的增长,您需要添加其他特定的数据库来处理不同的用例,例如 Redis、Elastic Search 等。


Woovi是一家创新型初创公司,正在革新支付格局。通过 Woovi,购物者可以自由选择自己喜欢的支付方式。我们先进的平台提供即时支付解决方案,使商家能够无缝接单并提升客户体验。

如果您有兴趣加入我们的团队,我们正在招聘!请访问Woovi Careers查看我们的职位空缺。


照片由Amélie MourichonUnsplash上拍摄

文章来源:https://dev.to/woovi/why-does-woovi-use-mongodb-m04
PREV
Woovi Git 最佳实践
NEXT
使用 Next.js 生成 PDF 文件