簡易的なメッセージ投稿アプリを作成中です。
Node.jsのパッケージであるsequelizeを用いて以下のテーブルのデータを整理したいです。
というのも、投稿した内容にいいね機能を実装したいのですが、サーバー側からフロント側にデータを渡す際に、各投稿ごとのいいね数を取得する方法が分からないです。
下記のようなUsersテーブルで管理されるユーザーIDとPostsテーブルで管理される投稿IDを、Favoritesテーブルを作成してどのユーザーがどの投稿にいいねしたかを管理しています。
やりたいこととしては、以下のFavoritesテーブルのcontentIDごとの総数を調べてフロントに渡したいです。
Favoritesテーブル
terminal
1+-----------+----------+------+-----+---------+----------------+ 2| Field | Type | Null | Key | Default | Extra | 3+-----------+----------+------+-----+---------+----------------+ 4| id | int | NO | PRI | NULL | auto_increment | 5| userID | int | YES | | NULL | | 6| contentID | int | YES | | NULL | | 7| createdAt | datetime | NO | | NULL | | 8| updatedAt | datetime | NO | | NULL | | 9+-----------+----------+------+-----+---------+----------------+
聞きたいこと
各contentIDの総数をまとめるsequelizeでのデータ整形の仕方(findAllを使ってやるのか、forEach文で回したりしてみるのか?)
findAllを使うにしてもcontentID毎の総数を調べるやり方が分からないです。
私の中では以下のように配列でまとめてフロントに渡すだろうと想定しています。
+----+--------+-----------+---------------------+---------------------+ | id | userID | contentID | createdAt | updatedAt | +----+--------+-----------+---------------------+---------------------+ | 1 | 1 | 2 | 2021-03-26 20:13:51 | 2021-03-26 20:13:51 | | 2 | 2 | 1 | 2021-03-26 21:11:02 | 2021-03-26 21:11:02 | | 3 | 2 | 2 | 2021-03-26 21:11:31 | 2021-03-26 21:11:31 | +----+--------+-----------+---------------------+---------------------+ // 例えば上記のようなデータ構成であればこのような配列の形でまとめる? array = [ {contentID: 1, count: 1}, {contentID: 2, count: 2} ];
あなたの回答
tips
プレビュー