10 Query Function Sequelize yang Wajib Diketahui

By Liu Purnomo
Picture of the author
Published on
10 Query Function Sequelize yang Wajib Diketahui

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 tentang distinct 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

Any Question?

Feel free to ask in the comment section below.