Mengisih Tatasusunan Bersarang dalam MongoDB
Masalah:
Bagaimana anda mengisih medan tatasusunan terbenam dalam Dokumen MongoDB, seperti tatasusunan skor dalam pelajar koleksi?
Cadangan Penyelesaian:
Disebabkan oleh pengehadan dalam keupayaan pengisihan asli Mongo, anda perlu menggunakan sama ada kod aplikasi atau Rangka Kerja Pengagregatan MongoDB untuk memanipulasi tatasusunan terbenam.
Penyelesaian Rangka Kerja Pengagregatan:
Menggunakan MongoDB Rangka Kerja Pengagregatan, anda boleh melakukan langkah berikut untuk mengisih tatasusunan skor dalam tertib menurun:
Pengagregatan Contoh:
db.students.aggregate([ // Initial document match { $match: { _id : 1 }}, // Expand scores array { $unwind: '$scores' }, // Filter homework scores { $match: { 'scores.type': 'homework' }}, // Sort in descending order { $sort: { 'scores.score': -1 }} ])
Output (Sampel):
{ "result" : [ { "_id" : 1, "name" : "Aurelia Menendez", "scores" : { "type" : "homework", "score" : 71.76133439165544 } }, { "_id" : 1, "name" : "Aurelia Menendez", "scores" : { "type" : "homework", "score" : 34.85718117893772 } } ], "ok" : 1 }
Atas ialah kandungan terperinci Bagaimana untuk Mengisih Medan Array Terbenam dalam MongoDB?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!