哪个支持 JSONB 的 ORM 更适合 Sails

Which ORM that supports JSONB is better with Sails

我想弄清楚要在我的 Sails.js + PostgreSQL 应用程序中使用什么 ORM(或其他解决方案)。基本规则是它支持 jsonb 数据类型。不幸的是 Waterline 没有 (bottom of the page),所以我不得不四处寻找解决方法。该应用程序是一个具有非常特定用途和功能的微服务,不会变得庞大或超级复杂。

我偶然发现了一些可以集成的 API:BedquiltDB and PostgREST,但这些似乎对我的需求来说有点矫枉过正。因此,我对使用任何此类解决方案持怀疑态度。

然后我偶然发现了 Sequelize and Bookshelf (with Knex)。还有其他一些选择,但这两个似乎是最受欢迎和使用最多的。以下是我对这两种选择的一般观点:

续集

书架

我确实在一些论坛上进行了深入研究,得到的印象是大多数人都喜欢 Sequelize 前面的 Bookshelf,尽管我不这么认为。

我写的一些观点在现实中可能并不正确,所以我想就您会使用哪种解决方案征求更多意见?除了提到的那些之外,只要有关于为什么使用它们的事实,欢迎使用。

两种ORM解决问题的方式完全不同。 Knex + Bookshelf 更像是一个基于 ORM 的查询构建器。您将获得非常好的支持,可以根据您的要求生成查询。也就是说 knex 有更多 "freedom" 用于生成复杂的查询。 Bookshelf 也支持 JSONB。

Sequelize 另一方面尝试通过 JavaScript 基于对象的查询形式来解决问题。它还支持 JSONB。它有很好的文档。 Sequelize 只缺乏生成复杂查询的领域。例如一些 issues。但与 Bookshelf 相比,它拥有更大的社区并且正在积极开发中。

我在很多项目中都使用 Sequelize,它从来没有给我带来任何问题。两个 ORM 都很好。两者都支持 JSONB。这取决于你想要遵循哪种风格。

请记住,如果遇到困难,您可以随时编写原始查询。