MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

MongoDB:Urutkan berdasarkan bidang yang ada dan kemudian menurut abjad

Bagaimana dengan:

db.users.find({ "name": { "$exists": true } }).sort({'name': 1})

Karena bagaimanapun juga ketika bidang yang ingin Anda sortir sebenarnya tidak ada maka nilai yang dikembalikan adalah null dan karenanya "lebih rendah" dalam urutan daripada hasil positif apa pun. Jadi masuk akal untuk mengecualikan hasil tersebut jika Anda benar-benar hanya mencari sesuatu dengan nilai yang cocok.

Jika Anda benar-benar menginginkan semua hasil ada di sana dan terlepas dari null konten, maka saya sarankan Anda "menimbang" mereka melalui .aggregate() :

db.users.aggregate([
     { "$project": {
         "name": 1,
         "score": {
             "$cond": [
                 { "$ifNull": [ "$name", false ] },
                 1,
                 10
             ]
         }
     }},
     { "$sort": { "score": 1, "name": 1 } }
])

Dan itu memindahkan semua null hasil ke "ujung rantai" dengan menetapkan nilai seperti itu.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cara yang Lebih Elegan untuk Menangani Nilai Penyaringan di Aplikasi Sudut

  2. Kesalahan mendapatkan MongoDB dengan _Id di Flask

  3. Basis data untuk dipilih untuk permainan

  4. Pemberitahuan:Properti tidak terdefinisi:MongoDB\Driver\Manager::$mydb di [Path] di server wamp

  5. Bagaimana cara menimpa Id objek di Mongo db saat membuat Aplikasi di Sails