Bagaimana untuk Mengisih Tatasusunan Terbenam dalam Koleksi MongoDB?

Patricia Arquette
Lepaskan: 2024-11-07 07:27:03
asal
226 orang telah melayarinya

How to Sort Embedded Arrays in MongoDB Collections?

Mengisih Tatasusunan Terbenam dalam Koleksi MongoDB

Masalah:

Anda mempunyai koleksi MongoDB rekod pelajar, setiap satu mengandungi tatasusunan markah yang dibenamkan. Anda ingin mengisih tatasusunan skor dalam susunan skor menurun untuk dokumen tertentu.

Penyelesaian:

Untuk mengisih tatasusunan terbenam, anda boleh menggunakan sama ada kod aplikasi tersuai atau Rangka Kerja Pengagregatan yang diperkenalkan dalam MongoDB 2.2.

Menggunakan Rangka Kerja Pengagregatan:

Talian paip pengagregatan cangkang MongoDB berikut mengisih tatasusunan skor dokumen dengan _id 1 dalam susunan menurun daripada skor:

db.students.aggregate(
    { $match: {
        _id : 1
    }},
    { $unwind: '$scores' },
    { $match: {
        'scores.type': 'homework'
    }},
    { $sort: {
        'scores.score': -1
    }}
)
Salin selepas log masuk

Output:

Pengagregatan ini menghasilkan output berikut, menunjukkan markah kerja rumah yang diisih untuk pelajar dengan _id 1:

{
    "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
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mengisih Tatasusunan Terbenam dalam Koleksi MongoDB?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!