Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie sortiere ich ein eingebettetes Score-Array in MongoDB?

Barbara Streisand
Freigeben: 2024-11-06 22:29:02
Original
623 Leute haben es durchsucht

How to Sort an Embedded Array of Scores in MongoDB?

Array innerhalb eines Sammlungsdatensatzes in MongoDB sortieren

Problemstellung

Betrachten Sie eine Sammlung von Schülerdatensätze in MongoDB, wobei jeder Datensatz ein eingebettetes Array von Punktzahlen enthält. Die Aufgabe besteht darin, das Scores-Array in absteigender Reihenfolge basierend auf dem Score-Wert zu sortieren.

Lösung

Aufgrund der Einschränkungen der Abfragesprache von MongoDB wird das eingebettete Array direkt manipuliert innerhalb der Abfrage selbst ist nicht möglich. Um diese Sortierung zu erreichen, können Sie zwei Ansätze ausprobieren:

1. Sortierung auf Anwendungsebene

Extrahieren Sie das Scores-Array mithilfe einer Suchabfrage aus der Sammlung. Sortieren Sie das Scores-Array in Ihrem Anwendungscode in absteigender Reihenfolge. Aktualisieren Sie den Datensatz mit dem sortierten Scores-Array zurück in MongoDB.

2. MongoDB Aggregation Framework

Mithilfe des MongoDB Aggregation Framework können Sie die Sortierung innerhalb von MongoDB selbst durchführen. Hier ist eine Beispiel-Aggregationspipeline, die Hausaufgabenergebnisse in absteigender Reihenfolge sortiert:

db.students.aggregate([
    { $match: { _id: 1 } },  // Initial document match
    { $unwind: '$scores' },  // Expand scores array into individual documents
    { $match: { 'scores.type': 'homework' } },  // Filter to homework scores
    { $sort: { 'scores.score': -1 } },  // Sort in descending order
])
Nach dem Login kopieren

Beispielausgabe:

{
    "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
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie sortiere ich ein eingebettetes Score-Array in MongoDB?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!