Bagaimana untuk Melaksanakan Pertanyaan Sertai dengan Sequelize pada Node.js?

Patricia Arquette
Lepaskan: 2024-11-21 18:29:10
asal
631 orang telah melayarinya

How to Perform Join Queries with Sequelize on Node.js?

Sertai Pertanyaan dengan Sequelize pada Node.js

Masalah:
Apabila menggunakan ORM Sequelize, bagaimana bolehkah kami melakukan pertanyaan gabungan untuk mendapatkan data daripada jadual berkaitan? Khususnya, bagaimanakah kita boleh mendapatkan semula siaran bersama-sama dengan maklumat pengguna yang berkaitan?

Penyelesaian:

1. Sertai Dalaman:

Untuk melakukan sambung dalam, kami menetapkan pilihan sertakan apabila membuat pertanyaan untuk model. Pilihan ini membolehkan kami menentukan model berkaitan yang ingin kami sertai. Secara lalai, Sequelize melakukan sambung luar kiri, jadi kami perlu menetapkan pilihan yang diperlukan kepada benar untuk sambung dalam.

Sebagai contoh, untuk mendapatkan semula semua siaran bersama-sama dengan maklumat pengguna yang berkaitan, kami boleh menggunakan pertanyaan berikut :

Posts.findAll({
  include: [{
    model: User,
    required: true
  }]
}).then(posts => {
  // Process and return the posts along with the user information.
});
Salin selepas log masuk

2. Sertai Luar Kiri:

Untuk melakukan sambung luar kiri, kami meninggalkan pilihan yang diperlukan atau menetapkannya kepada palsu dalam pilihan sertakan. Ini akan membolehkan kami mendapatkan semula semua siaran, termasuk yang tidak mempunyai pengguna yang berkaitan.

Contohnya:

Posts.findAll({
  include: [{
    model: User,
    required: false
  }]
}).then(posts => {
  // Process and return the posts, including those without user information.
});
Salin selepas log masuk

3. Menapis Keputusan Sertai:

Kita boleh menggunakan pilihan tempat dalam objek sertakan untuk menapis rekod yang berkaitan. Contohnya, untuk mendapatkan semula siaran milik pengguna yang lahir pada tahun 1984 sahaja, kami akan menggunakan:

Posts.findAll({
  include: [{
    model: User,
    where: {
      year_birth: 1984
    }
  }]
}).then(posts => {
  // Process and return the posts belonging to users born in 1984.
});
Salin selepas log masuk

4. Syarat Sertai Kompleks:

Kami juga boleh menentukan syarat gabungan kompleks menggunakan pilihan where. Contohnya, untuk mendapatkan semula siaran dengan nama "Sunshine" milik pengguna yang dilahirkan pada tahun yang sama dengan siaran itu dibuat, kami akan menggunakan:

Posts.findAll({
  where: {
    name: "Sunshine"
  },
  include: [{
    model: User,
    where: ["year_birth = post_year"]
  }]
}).then(posts => {
  // Process and return the posts matching the specified conditions.
});
Salin selepas log masuk

Rujukan Dokumentasi:

  • [Model: Penggunaan](http://docs.sequelizejs.com/en/latest/docs/models-usage/#eager-loading)

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Pertanyaan Sertai dengan Sequelize pada Node.js?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan