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 findOnefindByPk 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: "[email protected]" },
});

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 tentang distinct untuk menghindari duplikasi.

6. create

Membuat entri baru.

const user = await User.create({
  name: "John Doe",
  email: "[email protected]",
});

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: "[email protected]" },
  { name: "Jane Doe", email: "[email protected]" },
]);

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);
Comments to: 10 Query Function Sequelize yang Wajib Diketahui

    Your email address will not be published. Required fields are marked *