Node.jsのSequelizeは、JavaScriptでよく使われるORM(Object-Relational Mapping)ライブラリです。Sequelizeを利用することで、データベースとのやり取りを簡単に行うことができます。
本記事ではSequelizeのデータ取得に関連する主要なメソッドについて説明します。
findByPk
findByPk
メソッドは、主キー(プライマリーキー)に基づいて1つのレコードを取得します。
const user = await User.findByPk(1);
上記の例では、User
モデルから主キーが1のユーザーを取得しています。
findOne
findOne
メソッドは、指定した条件に一致する最初の1つのレコードを取得します。
const user = await User.findOne({
where: { age: 25 }
});
上記の例では、User
モデルからage
が25歳の最初のユーザーを取得しています。
findAll
findAll
メソッドは、指定した条件に一致するすべてのレコードを取得します。
const users = await User.findAll({
where: { age: 30 }
});
上記の例では、User
モデルからage
が30歳のすべてのユーザーを取得しています。
findOrCreate
findOrCreate
メソッドは、指定した条件に一致するレコードを取得し、存在しない場合は新しく作成します。
const [user, created] = await User.findOrCreate({
where: { name: 'Alice' },
defaults: { age: 20 } // 新規作成時のデフォルト値
});
上記の例では、User
モデルからname
が"Alice"のユーザーを取得し、もし存在しない場合は新しいユーザーを作成しています。
findAndCountAll
findAndCountAll
メソッドは、指定した条件に一致するすべてのレコードを取得し、合致したレコードの総数も取得します。
const result = await User.findAndCountAll({
where: { age: 25 }
});
上記の例では、User
モデルからage
が25歳のすべてのユーザーを取得し、合致したレコードの総数も取得しています。
count
count
メソッドは、指定した条件に一致するレコードの数を取得します。
const count = await User.count({
where: { age: 30 }
});
上記の例では、User
モデルからage
が30歳のユーザーの数を取得しています。
max
max
メソッドは、指定したカラムの最大値を取得します。
const maxAge = await User.max('age');
上記の例では、User
モデルのage
カラムの最大値を取得しています。
min
min
メソッドは、指定したカラムの最小値を取得します。
const minAge = await User.min('age');
上記の例では、User
モデルのage
カラムの最小値を取得しています。
sum
sum
メソッドは、指定したカラムの値の合計を取得します。
const totalAge = await User.sum('age');
上記の例では、User
モデルのage
カラムの値の合計を取得しています。