Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Mengisih Tatasusunan Terbenam dalam MongoDB dalam Susunan Menurun?
Mengisih Tatasusunan Terbenam dalam MongoDB
Soalan:
Bagaimana saya boleh mengisih tatasusunan skor dalam setiap rekod pelajar dalam koleksi MongoDB dalam susunan menurun sebanyak markah?
Masalah:
Pertimbangkan rekod pelajar berikut:
{ "_id": 1, "name": "Aurelia Menendez", "scores": [ { "type": "exam", "score": 60.06045071030959 }, { "type": "quiz", "score": 52.79790691903873 }, { "type": "homework", "score": 71.76133439165544 }, { "type": "homework", "score": 34.85718117893772 } ] }
Percubaan untuk mengulang secara manual tatasusunan skor menggunakan JavaScript terbenam dalam cangkerang mongo menggesa an ralat.
Penyelesaian:
Untuk mengisih tatasusunan skor, pertimbangkan saluran paip Rangka Kerja Pengagregatan MongoDB berikut:
db.students.aggregate( // Match the document (uses index if suitable) { $match: { _id: 1 }}, // Unwind scores array { $unwind: '$scores' }, // Filter to specific score type (optional) { $match: { 'scores.type': 'homework' }}, // Sort scores array { $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 Tatasusunan Terbenam dalam MongoDB dalam Susunan Menurun?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!