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