我想知道在我的Sails.js + PostgreSQL應用程序中使用什麼ORM(或其他解決方案)。基本規則是它支持jsonb
數據類型。不幸的是Waterline
沒有(bottom of the page),所以我不得不四處尋找解決方法。該應用程序是一個具有非常特定目的和功能的MicroService,並不會是巨大或超複雜的。哪個ORM支持JSONB比Sails更好
我偶然發現了一些可以集成的API:BedquiltDB和PostgREST,但這些看起來像是爲了滿足我的需求。所以,我對使用任何這種類型的解決方案持懷疑態度。
然後我偶然發現Sequelize和Bookshelf(with Knex)。還有其他一些選擇,但這兩個看起來像是最受歡迎和最常用的選項。這裏是我的基本點向兩個選項:
Sequelize
- 據說有弱勢羣體,很難找到答案,但這樣它 具有X2將q &水線的
- 說當你的項目有複雜的實體關係(如果這意味着「比平常更多的外鍵」,那麼我可以說我不會在我的數據庫設置中有這個)
- 說有良好的文檔,但只爲基礎..但我可以找到基本上所有的基本和關係查詢,通常會使用的方法,所以我沒有看到在這裏的文檔的消極方面。
- 支持
jsonb
開箱,基本上我需要的任何其他類型 - 我喜歡文檔 - 它非常詳細。而且我發現如何輕鬆地將它與帆
書架
- 建立在KnexJS,這似乎是一個功能強大的查詢構建器集成TUTS。基本上,您需要安裝Knex才能安裝Bookshelf,所以您始終都有。這在我看來是一個缺點,因爲我將不得不使用ORM +查詢構建器,而不是單個ORM,以滿足我所有的需求。
- 支持
jsonb
(因爲Knex) - 我真的不喜歡書架的文檔。模型聲明(各種情況)的示例不夠好。
- 已經少得多了Q &在SO中,與Sequelize相比。那麼,看起來社區比較弱?
我在相當一些論壇上挖了一下,並且給人的印象是大多數人都喜歡Sequelize前面的Bookshelf,儘管我看不到它。
我寫的一些觀點實際上可能並不正確,所以我要求提供更多關於您使用哪種解決方案的意見?除了提到的那些外,都是受歡迎的,只要有關於爲什麼使用它們的事實。
Sequelize和Knex不支持完整的函數postgresql 9.6 JSONB函數https://www.postgresql.org/docs/9.6/static/functions-json.html – stackdave