PostgreSQL JSON字段类型与MongoDB

Saš*_*jak 6 postgresql json mongodb

我正在构建一些应用程序,其中部分应用程序将具有非常多的非结构化和更改数据,我想将其转储为JSON.作为主要数据库,我正在使用PostgreSQL.我从未使用过JSON字段类型,但之前使用过MongoDB.我不需要任何花哨的东西,99%的时间它只是存储和获取数据并通过JSON的某些字段进行查询,它具有PostgreSQL的一个实例可以处理的规模,没有任何史诗.

我的问题是,PostgreSQL JSON字段与使用MongoDB相当吗?在为此选择PosgresSQL之前,我现在应该有任何限制或绊脚石吗?额外的问题:在使用Studio 3T应用程序进行MongoDB时,是否有一种简单的方法可以手动查看和编辑JSON字段?(我知道PostgreSQL数据库应用程序并不是出于某种原因......)

Mic*_*ael 4

使用 Postgres 处理 json 数据不会有任何问题。需要一些时间来习惯 Postgres 中的 json 和 array 函数,但它们很棒并且可以满足您的大部分需求。Postgres 中的 Json 支持是成熟且非常棒的。

不过,在将数据存储到 json 字段之前请仔细考虑。这是一种简单的方法,但如果您的数据实际上是相关的,那么它可能会反过来影响您。即使在今天,古老的范式仍然适用。

我在几个项目中使用过 MongoDB,我怀疑我是否会再次使用它。我认为大多数现实世界的用例实际上都是相关的。在我看来,Postgres 通过对 json 的大力支持,在关系型和文档型之间取得了完美的平衡。

如果您只想存储 json 数据的“blob”,您可以使用json数据类型。但是,如果您知道需要操作对象或从中提取值,则应该使用jsonb。Jsonb 也会检查你的 json 数据的有效性。我还认为 jsonb 的索引效率更高。

在 Postgres 函数中使用 json 数据类型或 json 数组作为输入参数是非常棒的。我经常从 API 服务器获取 json,当数据需要存储为关系型数据时,需要将其分解为更小的数据。这在 Postgres 中很容易完成。有时我也以相反的方式使用它,即 Postgres 函数整合关系数据并将其很好地打包到 REST 友好的 json 对象中以进行输出。这样我就可以隐藏我实际上将数据存储在规范化数据库中的事实。