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

Cara Mengurutkan hasil kueri mongodb berdasarkan subdokumen

Anda dapat menggunakan cursor.sort() untuk mengurutkan pada beberapa bidang (pada dasarnya kombo) pada saat yang sama tetapi saya tidak berpikir itu berfungsi saat mengurutkan pada dokumen dan bidang subdokumen pada saat yang sama. Jika Anda mengurutkan pada dua bidang berbeda dari dokumen teratas atau pada dua bidang subdokumen yang berbeda maka saya kira akan baik-baik saja.

Jadi Anda bisa mendapatkan hasil serupa menggunakan agregasi kerangka. Yang harus Anda lakukan pada dasarnya adalah memecah array subs lalu sort mereka.

Anda dapat melakukan sesuatu seperti:

db.col.aggregate({$unwind:'subs'}, {$sort:{id:1,'subs.time':1}});

Dengan kode di atas Anda akan mendapatkan output yang mirip dengan ini:

 { 
    id: 1, 
    type: 'strs', 
    subs: 
        { time: 1, val: 'ab' }
},{ 
    id: 1, 
    type: 'strs', 
    subs: 
        { time: 20, val: 'cs' }
},{ 
    id: 1, 
    type: 'strs', 
    subs: 
        { time: 50, val: 'be' }
},{ 
    id: 2, 
    type: 'newname', 
    subs: 
        { time: 12, val: 'a' }
},{ 
    id: 2, 
    type: 'newname', 
    subs: 
        { time: 20, val: 'b' }
},{ 
    id: 2, 
    type: 'newname', 
    subs: 
        { time: 30, val: 'c' }
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Dapatkan dokumen yang diperbarui di MongoDB

  2. Bagaimana cara mengirim gambar yang diambil dari Mongo menggunakan GridFS di Spring Rest Call?

  3. Tanggal MongoDB di zona waktu

  4. Bagaimana nilai nol dalam indeks MongoDB diurutkan?

  5. Apa perbedaan antara dua kueri MongoDB ini?