問題タブ [feathers-sequelize]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sequelize.js - 続編で多対多の関係を照会する方法
私は、sequelize を介して postgres db を介して Feathersjs/nodejs を使用してきました。私のデータベースには、Users テーブルと Events テーブルがあります。それらは2倍の関係にあります:
すべてが正常に機能し、テーブルが作成され、インクルードを使用して、ユーザーをイベント内に参加者として取得します。問題は関連付けによるクエリです。現在のユーザーのイベントを取得しようとしているので、作成者が現在のユーザーであるイベントと、参加者の 1 人が現在のユーザーであるイベントが必要です。問題は、「現在のユーザーが参加者の 1 人であるクエリ」の 2 番目の部分です。私はこのようなものを期待していました
'api/events?$or[0][creatorId]=currUserId&$or[1][participants][$contains]=currUserId'
しかし、「参加者」などの列が含まれていないため、クエリを実行できません。したがって、今のところ、すべてのイベントを取得し、現在のユーザーのアフター フックでそれらをフィルタリングしていますが、それは間違っているようです。これを行う正しい方法は何ですか?
そして、ユーザーをユーザーに含めて取得することで、ユーザーが参加者の1人であるイベントを取得できることはわかっていますが、そのデータをまとめて並べ替えることができず、個別に並べ替えられ、別の問題がフロントエンドでページネーションを行うことです。
sequelize.js - Sequelize.js を使用して (自動生成されない) 結合テーブルからの出力を非表示にできますか?
Sequelize を ORM として使用する Feathersjs バックエンド フレームワークを使用しています。Sequelize を使用すると、n:m 関係の結合テーブルを関連付けで「自動的に」生成できます (以降、「アプローチ A」と呼びますbelongsToMany
)。 2 つの関連付けと、ジョイント テーブルに結合する 2 つのテーブルの関連belongsTo
付けを使用しhasMany
ます。
これはうまくいきます。ただし、私の出力は次のようになります。
そして、私はそれを次のようにしたいと思います:
アプローチ Athrough: { attributes: [] }
を使用する場合、これとまったく同じ問題は、クエリでを使用して解決できます。これもアプローチ B を使用して達成できますか?