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 field name dan age yang akan ditampilkan.
  • _id: 0: Secara default, MongoDB selalu menyertakan field _id dalam hasil query. Jika tidak ingin menampilkan _id, harus secara eksplisit diatur menjadi 0.
  • 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.