Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Mengisih Tatasusunan Terbenam dalam MongoDB dalam Susunan Menurun?

Bagaimana untuk Mengisih Tatasusunan Terbenam dalam MongoDB dalam Susunan Menurun?

Susan Sarandon
Lepaskan: 2024-11-10 03:12:02
asal
740 orang telah melayarinya

How to Sort Embedded Arrays in MongoDB in Descending Order?

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

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

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

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!

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