Mongodb: cara mengurutkan berdasarkan beberapa bidang


Anda dapat menggunakan sintaks berikut untuk mengurutkan dokumen di MongoDB berdasarkan beberapa bidang:

 db.myCollection.find().sort( { " field1 ": 1, " field2 ": -1 } )

Kode khusus ini mengurutkan dokumen dalam koleksi yang disebut myCollection terlebih dahulu berdasarkan bidang 1 menaik, kemudian menurut bidang 2 menurun.

Contoh berikut memperlihatkan cara menggunakan sintaksis ini dengan tim koleksi dengan dokumen berikut:

 db.teams.insertOne({team: " Mavs ", points: 30, rebounds: 8})
db.teams.insertOne({team: " Spurs ", points: 30, rebounds: 12})
db.teams.insertOne({team: " Rockets ", points: 20, rebounds: 7})
db.teams.insertOne({team: " Warriors ", points: 25, rebounds: 5})
db.teams.insertOne({team: " Cavs ", points: 25, rebounds: 9})

Contoh 1: Urutkan berdasarkan beberapa bidang di MongoDB (menaik)

Kita dapat menggunakan kode berikut untuk mengurutkan dokumen dalam koleksi Teams terlebih dahulu dengan meningkatkan “poin” dan kemudian dengan meningkatkan “pentalan”:

 db.teams.find().sort( { " points ": 1, " rebounds ": 1 } )

Kueri ini mengembalikan hasil berikut:

 { _id: ObjectId("61f952c167f1c64a1afb203b"),
  team: 'Rockets',
  points: 20,
  rebounds: 7 }
{ _id: ObjectId("61f952c167f1c64a1afb203c"),
  team: 'Warriors',
  points: 25,
  rebounds: 5 }
{ _id: ObjectId("61f952c167f1c64a1afb203d"),
  team: 'Cavs',
  points: 25,
  rebounds: 9 }
{ _id: ObjectId("61f952c167f1c64a1afb2039"),
  team: 'Mavs',
  points: 30,
  rebounds: 8 }
{ _id: ObjectId("61f952c167f1c64a1afb203a"),
  team: 'Spurs',
  points: 30,
  rebounds: 12 }

Perhatikan bahwa dokumen diurutkan berdasarkan peningkatan bidang “poin” (dari terkecil ke terbesar) kemudian dengan peningkatan bidang “pantulan” (dari terkecil ke terbesar).

Contoh 2: Urutkan berdasarkan beberapa bidang di MongoDB (menurun)

Kita dapat menggunakan kode berikut untuk mengurutkan dokumen dalam koleksi tim terlebih dahulu dengan mengurangi “poin” dan kemudian dengan mengurangi “pentalan”:

 db.teams.find().sort( { " points ": -1, " rebounds ": -1 } )

Kueri ini mengembalikan hasil berikut:

 { _id: ObjectId("61f952c167f1c64a1afb203a"),
  team: 'Spurs',
  points: 30,
  rebounds: 12 }
{ _id: ObjectId("61f952c167f1c64a1afb2039"),
  team: 'Mavs',
  points: 30,
  rebounds: 8 }
{ _id: ObjectId("61f952c167f1c64a1afb203d"),
  team: 'Cavs',
  points: 25,
  rebounds: 9 }
{ _id: ObjectId("61f952c167f1c64a1afb203c"),
  team: 'Warriors',
  points: 25,
  rebounds: 5 }
{ _id: ObjectId("61f952c167f1c64a1afb203b"),
  team: 'Rockets',
  points: 20,
  rebounds: 7 }

Perhatikan bahwa dokumen diurutkan berdasarkan penurunan kolom “poin” (dari terbesar ke terkecil) kemudian dengan penurunan kolom “rebound” (dari terbesar ke terkecil).

Catatan : Anda dapat menemukan dokumentasi lengkap untuk fungsi pengurutan di sini .

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan operasi umum lainnya di MongoDB:

MongoDB: Cara mengurutkan berdasarkan tanggal
MongoDB: Cara mengelompokkan dan menghitung
MongoDB: Cara mengelompokkan berdasarkan beberapa bidang

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *