10 Query Function Sequelize yang Wajib Diketahui
- Published on
Sebagai ORM, sequelize memberikan banyak kemudahan, salah satuanya adalah dengan Query Function, berikut adalah 10 Query Function Sequelize yang wajib untuk diketahui:
1. findAll
Mengambil semua entri yang cocok dengan kriteria query yang diberikan. Sangat berguna untuk menampilkan daftar data, seperti menampilkan semua pengguna atau produk.
const users = await User.findAll();
findAll juga bisa digunakan untuk mencari data dengan kriteria tertentu, misalnya mencari pengguna dengan nama John
:
const users = await User.findAll({
where: {
name: "John",
},
});
Selain itu kita juga bisa menggunakan operator lain seperti Op.or
untuk mencari data dengan kriteria lebih dari satu, misalnya mencari pengguna dengan nama John
atau Jane
:
const users = await User.findAll({
where: {
[Op.or]: [{ name: "John" }, { name: "Jane" }],
},
});
Bisa juga memberikan limit dan offset untuk pagination:
const users = await User.findAll({
limit: 10,
offset: 20,
});
Untuk pengurutan data, kita bisa menggunakan order
:
const users = await User.findAll({
order: [["name", "DESC"]],
});
2. findOne
Mengambil satu entri yang cocok dengan kriteria query yang diberikan. Sangat berguna untuk menampilkan detail data, seperti menampilkan detail pengguna atau produk.
const user = await User.findOne({
where: {
id: 1,
},
});
3. findByPk
Sama dengan findOne
, findByPk
juga akan menghasilkan 1 (satu) entry, bedanya findByPk
akan mencari data berdasarkan primary key.
const user = await User.findByPk(1);
4. findOrCreate
Mencari entri yang cocok dengan kriteria query yang diberikan, jika tidak ada maka akan membuat entri baru. Sangat berguna untuk menambahkan data baru jika belum ada.
const [user, created] = await User.findOrCreate({
where: { name: "John Doe" },
defaults: { email: "john.doe@mail.com" },
});
Untuk default itu opsional, boleh tidak ada, jadi biasnya kita hanya akan menulis begini
const [user, created] = await User.findOrCreate({
where: { name: "John Doe" },
});
5. findAndCountAll
Sama seperti findAll
, namun outpunya akan mengembalikan informasi tentang row dan count datanya.
const { rows, count } = await User.findAndCountAll({
where: {
name: "John",
},
});
Catatan : Jika
include
, perlu memberikan informasi tentangdistinct
untuk menghindari duplikasi.
6. create
Membuat entri baru.
const user = await User.create({
name: "John Doe",
email: "john.doe@mail.com",
});
7. update
Mengupdate entri yang cocok dengan kriteria query yang diberikan.
const user = await User.update(
{ name: "John Doe" },
{
where: {
id: 1,
},
}
);
8. destroy
Menghapus entri yang cocok dengan kriteria query yang diberikan.
const user = await User.destroy({
where: {
id: 1,
},
});
9. bulkCreate
Membuat banyak entri baru sekaligus.
const users = await User.bulkCreate([
{ name: "John Doe", email: "john.doe@mail.com" },
{ name: "Jane Doe", email: "jane.doe@mail.com" },
]);
10. bulkDelete
Menghapus banyak entri sekaligus.
const ids = [1, 2, 3];
const delete = await User.destroy({
where: {
id: {
[Op.in]: arrayId,
},
},
});
Atau bisa menggunakan bulkDelete
:
const ids = [1, 2, 3];
const users = await User.bulkDelete(ids);
Related Posts
- Published on
Cara Merubah Nama Table Dengan Migrasi Sequelize
- Published on