Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Mengisih Medan Array Terbenam dalam MongoDB?

Bagaimana untuk Mengisih Medan Array Terbenam dalam MongoDB?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-10 22:54:03649semak imbas

How to Sort an Embedded Array Field in MongoDB?

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:

  1. Padanan Dokumen: Padankan dokumen yang dikehendaki menggunakan indeks yang sesuai, jika ada.
  2. Peluasan Tatasusunan: Lepaskan tatasusunan skor untuk mencipta aliran dokumen bagi setiap skor.
  3. Penapisan Jenis: Tapis strim untuk memilih skor jenis tertentu (cth., 'kerja rumah').
  4. Isih: Isih markah dalam susunan 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn