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.

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
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
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:
- Tentukan ukuran halaman, misalnya 2 dokumen per halaman.
- Kalikan ukuran halaman dengan nomor halaman dikurangi satu untuk mendapatkan nilai lewati.
- 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.


