MongoDB Sortir() & Batasi() Kueri dengan Urutan Berdasarkan Contoh

โšก Ringkasan Cerdas

MongoDB Pengubah kueri Sort() dan Limit() mengontrol berapa banyak dokumen yang dikembalikan oleh kueri dan dalam urutan apa. Metode limit() membatasi jumlah hasil, sedangkan sort() mengatur dokumen dalam urutan naik atau turun menggunakan nilai 1 atau -1.

  • ๐Ÿ”ข Batasi Hasil: Metode limit() membatasi jumlah dokumen yang dikembalikan oleh sebuah query, misalnya limit(2) mengembalikan dua record.
  • (I.e. Urutkan Menurun: sort({field:-1}) mengembalikan dokumen dalam urutan menurun berdasarkan bidang yang dipilih.
  • ๏ธ Urutkan secara menaik: sort({field:1}) mengembalikan dokumen dalam urutan menaik, yang juga merupakan arah default.
  • ๏ธ Lewati untuk Penomoran Halaman: Metode skip() mengabaikan sejumlah dokumen, dan jika dikombinasikan dengan limit() akan membentuk paginasi.
  • ๐Ÿงท Beberapa Kunci: Fungsi sort() menerima beberapa kolom, mengurutkan berdasarkan kunci pertama dan memecahkan kebuntuan dengan kunci berikutnya.
  • ๏ธ Readable Keluaran: Menggabungkan forEach(printjson) akan mencetak setiap dokumen yang dikembalikan dalam format JSON yang rapi.

MongoDB Kueri Sort() & Limit()

Apa itu Modifikasi Kueri?

MongoDB menyediakan pengubah kueri seperti klausa 'limit' dan 'Orders' untuk memberikan fleksibilitas lebih saat menjalankan kueri. Kita akan melihat pengubah kueri berikut

MongoDB Batasi Hasil Kueri

Pengubah ini digunakan untuk membatasi jumlah dokumen yang dikembalikan dalam set hasil untuk suatu kueri. Contoh berikut menunjukkan bagaimana hal ini dapat dilakukan.

db.Employee.find().limit(2).forEach(printjson);

Code Penjelasan

  • Kode di atas mengambil fungsi find yang mengembalikan semua dokumen dalam koleksi tetapi kemudian menggunakan klausa limit untuk membatasi jumlah dokumen yang dikembalikan menjadi hanya 2.

Keluaran

Jika perintah berhasil dijalankan, Output berikut akan ditampilkan

MongoDB Batasi Hasil Kueri

Outputnya dengan jelas menunjukkan bahwa karena ada pengubah batas, maka paling banyak hanya 2 record yang dikembalikan sebagai bagian dari kumpulan hasil berdasarkan ObjectId dalam urutan menaik.

MongoDB Urutkan berdasarkan Urutan Menurun

Seseorang dapat menentukan urutan dokumen yang akan dikembalikan berdasarkan urutan menaik atau menurun dari kunci apa pun dalam koleksi. Contoh berikut menunjukkan bagaimana hal ini dapat dilakukan.

db.Employee.find().sort({Employeeid:-1}).forEach(printjson)

Code Penjelasan

  • Kode di atas mengambil fungsi pengurutan yang mengembalikan semua dokumen dalam koleksi tetapi kemudian menggunakan pengubah untuk mengubah urutan pengembalian catatan. Di sini -1 menunjukkan bahwa kita ingin mengembalikan dokumen berdasarkan urutan id Karyawan.

Jika perintah berhasil dijalankan, Output berikut akan ditampilkan

Keluaran

MongoDB Urutkan berdasarkan Urutan Menurun

Outputnya dengan jelas menunjukkan dokumen yang dikembalikan dalam urutan Employeeid.

Urutan menaik ditentukan oleh nilai 1.

MongoDB Urutkan berdasarkan Urutan Menaik

Sama seperti fungsi sort() yang dapat mengembalikan dokumen dalam urutan menurun, fungsi ini juga dapat mengembalikannya dalam urutan menaik. Urutan menaik didefinisikan oleh nilai 1 dalam objek sort. Ini mengatur dokumen dari nilai terkecil hingga terbesar, yang berguna untuk mencantumkan catatan dari yang terlama hingga terbaru atau dari A hingga Z.

Contoh berikut mengurutkan setiap dokumen karyawan berdasarkan Employeeid dalam urutan menaik:

db.Employee.find().sort({Employeeid:1}).forEach(printjson)

Berikut cara kerja kueri tersebut:

  • Fungsi find() mengambil semua dokumen dalam koleksi Employee.
  • sort({Employeeid:1}) mengurutkan hasil berdasarkan kolom Employeeid, dari id terendah hingga tertinggi.
  • forEach(printjson) mencetak setiap dokumen dalam format JSON yang mudah dibaca.

Saat Anda menjalankan perintah ini, dokumen akan muncul dalam urutan Employeeid yang meningkat. Urutan menaik juga merupakan arah default, jadi membiarkan nilainya tetap 1 akan memberikan urutan dari rendah ke tinggi pada bidang yang dipilih. Untuk membalikkan hasilnya, cukup ubah nilai dari 1 menjadi -1, dan Anda juga dapat menggabungkan limit() untuk hanya menampilkan beberapa catatan pertama yang sudah diurutkan.

MongoDB Lewati() untuk Paginasi

Metode skip() memberi tahu MongoDB Untuk mengabaikan sejumlah dokumen tertentu sebelum mengembalikan sisanya. Sendirian, skip() jarang berguna, tetapi jika dikombinasikan dengan limit(), ia menciptakan paginasi, memungkinkan Anda menampilkan hasil satu halaman per satu waktu.

Contoh berikut melewati dua karyawan pertama dan menampilkan dua karyawan berikutnya:

db.Employee.find().skip(2).limit(2).forEach(printjson)

Untuk membuat navigasi halaman demi halaman, ikuti pola ini:

  1. Tentukan ukuran halaman, misalnya 2 dokumen per halaman.
  2. Kalikan ukuran halaman dengan nomor halaman dikurangi satu untuk mendapatkan nilai lewati.
  3. Berikan nilai tersebut ke fungsi skip() dan ukuran halaman ke fungsi limit().

Misalnya, halaman 1 menggunakan skip(0).limit(2), halaman 2 menggunakan skip(2).limit(2), dan halaman 3 menggunakan skip(4).limit(2). Selalu tambahkan sort() juga, agar urutan dokumen tetap stabil di seluruh halaman. Perhatikan bahwa nilai skip yang sangat besar dapat memperlambat koleksi besar, karena MongoDB masih memindai dan membuang dokumen yang dilewati; penomoran halaman berbasis rentang lebih cepat dalam skala besar.

Urutkan berdasarkan Beberapa Bidang di MongoDB

MongoDB Dapat mengurutkan berdasarkan lebih dari satu kolom sekaligus. Anda mencantumkan kolom-kolom dalam objek pengurutan sesuai urutan prioritas, dan MongoDB mengurutkan berdasarkan kolom pertama, kemudian menggunakan kolom berikutnya untuk memecahkan kebuntuan, dan seterusnya.

Contoh berikut mengurutkan karyawan berdasarkan nama dalam urutan menaik, dan untuk karyawan dengan nama yang sama, berdasarkan Employeeid dalam urutan menurun:

db.Employee.find().sort({EmployeeName:1, Employeeid:-1}).forEach(printjson)

Urutan kunci dalam objek pengurutan itu penting: EmployeeName diterapkan terlebih dahulu karena muncul pertama. Pengurutan multi-kunci ini berguna untuk laporan di mana Anda mengelompokkan berdasarkan satu bidang dan kemudian memberi peringkat di dalam setiap kelompok. Untuk kinerja terbaik pada koleksi besar, buat indeks gabungan yang sesuai dengan bidang dan arah yang digunakan dalam pengurutan.

Pertanyaan Umum Demo Slot

Tanpa sort(), MongoDB Mengembalikan dokumen dalam urutan alami, yang biasanya mencerminkan urutan dokumen di disk dan tidak dijamin. Untuk urutan yang dapat diprediksi, selalu tambahkan sort() secara eksplisit pada field seperti _id.

Secara logis, MongoDB Fungsi `sort()` selalu diterapkan sebelum `limit()`, terlepas dari urutan penggunaannya. Ini berarti `limit()` mengembalikan dokumen teratas dari hasil yang diurutkan, bukan subset acak yang kemudian diurutkan.

Mengurutkan kumpulan hasil yang besar tanpa indeks akan memaksa pengurutan dalam memori, yang akan gagal setelah melebihi batas memori. Membuat indeks pada kolom pengurutan memungkinkan MongoDB Mengembalikan hasil yang diurutkan secara efisien.

AI dapat mengubah permintaan sederhana seperti 'lima karyawan terbaru' menjadi kueri find().sort().limit() dengan arah dan jumlah yang tepat. AI juga menjelaskan setiap pengubah sehingga pemula dapat mempelajari polanya.

Ya. AI dapat memeriksa rencana kueri, mendeteksi pengurutan dalam memori, dan merekomendasikan indeks yang dibutuhkan untuk mendukung pengurutan tersebut. Hal ini membantu pengembang mempercepat pengurutan dan membatasi kueri pada koleksi besar.

Ringkaslah postingan ini dengan: