Sorting pada MongoDB
MongoDB adalah database NoSQL yang sering digunakan untuk menyimpan dan mengelola data dalam format JSON. Salah satu fitur penting yang disediakan MongoDB adalah kemampuan untuk mengurutkan data menggunakan query sort
. Sorting sangat berguna dalam berbagai situasi, seperti saat ingin menampilkan data berdasarkan urutan tertentu, baik itu ascending (naik) atau descending (turun). Artikel ini akan membahas cara menggunakan sort
dalam MongoDB, serta memberikan contoh kasus yang relevan untuk lebih memahami penggunaannya.
Konsep Dasar Sort pada MongoDB
Operasi sorting pada MongoDB digunakan untuk mengurutkan dokumen dalam koleksi berdasarkan nilai dari satu atau lebih field. MongoDB memungkinkan pengurutan data dalam urutan menaik (ascending) atau menurun (descending). Secara default, query sort
mengurutkan data dalam urutan menaik, tetapi dengan menambahkan nilai tertentu, dapat diubah ke urutan menurun.
Sintaks Dasar sort()
Sintaks dasar untuk menggunakan sort()
pada MongoDB adalah sebagai berikut:
db.collection.find().sort({field_name: 1}) // Ascending
db.collection.find().sort({field_name: -1}) // Descending
1
digunakan untuk urutan menaik (ascending).-1
digunakan untuk urutan menurun (descending).
Contoh Kasus 1: Sorting Berdasarkan Satu Field
Misalkan ada koleksi users
dengan dokumen sebagai berikut:
{ "_id": 1, "name": "John", "age": 28 }
{ "_id": 2, "name": "Jane", "age": 22 }
{ "_id": 3, "name": "Tom", "age": 34 }
Untuk mengurutkan data berdasarkan usia secara menaik, dapat menggunakan query berikut:
db.users.find().sort({age: 1})
Hasilnya akan seperti ini:
{ "_id": 2, "name": "Jane", "age": 22 }
{ "_id": 1, "name": "John", "age": 28 }
{ "_id": 3, "name": "Tom", "age": 34 }
Contoh Kasus 2: Sorting Berdasarkan Beberapa Field
Jika ingin mengurutkan data berdasarkan beberapa field, misalnya berdasarkan nama secara alfabetis dan usia dalam urutan menurun, query dapat ditulis seperti ini:
db.users.find().sort({name: 1, age: -1})
Hasilnya:
{ "name": "Jane", "age": 22 }
{ "name": "John", "age": 28 }
{ "name": "Tom", "age": 34 }
Urutan pertama mengurutkan berdasarkan nama, dan jika nama sama, usia diurutkan secara menurun.
Contoh Kasus 3: Menggunakan Sort dengan Proyeksi
Pada beberapa kasus, hanya sebagian data yang ingin ditampilkan setelah disortir. Untuk itu, proyeksi digunakan untuk memilih field tertentu yang ingin ditampilkan, misalnya hanya menampilkan nama dan usia setelah data diurutkan berdasarkan usia:
db.users.find({}, {name: 1, age: 1, _id: 0}).sort({age: 1})
Penjelasan:
{name: 1, age: 1}
: Menunjukkan fieldname
danage
yang akan ditampilkan._id: 0
: Secara default, MongoDB selalu menyertakan field_id
dalam hasil query. Jika tidak ingin menampilkan_id
, harus secara eksplisit diatur menjadi0
.sort({age: 1})
: Mengurutkan data berdasarkan usia dalam urutan menaik.
Hasilnya:
{ "_id": 2, "name": "Jane", "age": 22 }
{ "_id": 1, "name": "John", "age": 28 }
{ "_id": 3, "name": "Tom", "age": 34 }
Kesimpulan
Sorting di MongoDB adalah fitur yang sangat berguna untuk mengurutkan data sesuai dengan kebutuhan aplikasi. Menggunakan sort()
pada MongoDB memungkinkan pengurutan berdasarkan satu atau beberapa field, baik dalam urutan menaik maupun menurun. Dengan memanfaatkan contoh-contoh yang diberikan, dapat mempermudah implementasi sorting dalam berbagai skenario. Sorting juga dapat digunakan bersama dengan proyeksi untuk meminimalkan data yang ditampilkan, sehingga meningkatkan efisiensi query.