MongoDB Aggregatsortierung

Mehvish Ashiq 13 Juni 2022
MongoDB Aggregatsortierung

Es ist notwendig, über ausreichende Kenntnisse der Phasen der Aggregationspipeline zu verfügen, um Aggregationsvorgänge mit MongoDB durchzuführen. In diesem Tutorial wird die Stufe $sort anhand eines Beispiels zur Durchführung der MongoDB-Aggregatsortierung untersucht.

MongoDB-Aggregatsortierung

Lassen Sie uns ein Szenario haben, um die Codebeispiele zu üben. Wir haben eine Sammlung namens student, die grundlegende Informationen enthält.

Sie können auch die folgenden Abfragen verwenden, um mit uns auf derselben Seite zu sein.

Beispielcode:

> db.createCollection('student');
> db.student.insertMany([
    {"student_code": "ma001", "name": "Mehvish Ashiq", "postcode": 2000},
    {"student_code": "tc002", "name": "Thomas Christopher", "postcode": 2001},
    {"student_code": "km003", "name": "Krishna Mehta", "postcode": 2000},
    {"student_code": "ar004", "name": "Aftab Raza", "postcode": 2000},
    {"student_code": "za005", "name": "Zeenat Ashraf", "postcode": 2002},
    {"student_code": "ka006", "name": "Kanwal Ali", "postcode": 2002}
]);
> db.student.find().pretty();

AUSGANG:

{
        "_id" : ObjectId("629afe5a0a3b0e96fe92e97b"),
        "student_code" : "ma001",
        "name" : "Mehvish Ashiq",
        "postcode" : 2000
}
{
        "_id" : ObjectId("629afe5a0a3b0e96fe92e97c"),
        "student_code" : "tc002",
        "name" : "Thomas Christopher",
        "postcode" : 2001
}
{
        "_id" : ObjectId("629afe5a0a3b0e96fe92e97d"),
        "student_code" : "km003",
        "name" : "Krishna Mehta",
        "postcode" : 2000
}
{
        "_id" : ObjectId("629afe5a0a3b0e96fe92e97e"),
        "student_code" : "ar004",
        "name" : "Aftab Raza",
        "postcode" : 2000
}
{
        "_id" : ObjectId("629afe5a0a3b0e96fe92e97f"),
        "student_code" : "za005",
        "name" : "Zeenat Ashraf",
        "postcode" : 2002
}
{
        "_id" : ObjectId("629afe5a0a3b0e96fe92e980"),
        "student_code" : "ka006",
        "name" : "Kanwal Ali",
        "postcode" : 2002
}

Als nächstes wollen wir die Postleitzahl ermitteln, die die maximale Anzahl an Studierenden beherbergt, aber in sortierter Form. Überprüfen Sie dazu den folgenden Beispielcode.

Beispielcode:

> db.student.aggregate([
    { $group: { _id: '$postcode', students: { $sum: 1 } } },
    { $sort: {_id: 1} }
]);

AUSGANG:

{ "_id" : 2000, "students" : 3 }
{ "_id" : 2001, "students" : 1 }
{ "_id" : 2002, "students" : 2 }

Hier verwenden wir die Funktion aggregate(), die die aggregierten Werte für Daten in der angegebenen Sammlung oder einer Ansicht berechnet. Innerhalb der Methode aggregate() gruppieren wir die Dokumente unter Berücksichtigung des Felds Postleitzahl.

Weiter geben wir die postcode als _id zurück, und die Studenten zählen in jeder postcode als students. Hier verwenden wir die $sum, um die Anzahl der Studenten für jede postcode zu erhalten.

Die $sum berechnet die Gesamtsumme des numerischen Werts und gibt sie zurück, indem die nicht numerischen Werte ignoriert werden.

Schließlich verwenden wir die Stufe $sort, um sie nach den Projektanforderungen in aufsteigender oder absteigender Reihenfolge zu sortieren. Die 1 wird für aufsteigende Reihenfolge verwendet, während -1 für absteigende Reihenfolge verwendet wird.

Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

Verwandter Artikel - MongoDB Sort