Tri agrégé MongoDB

Mehvish Ashiq 13 juin 2022
Tri agrégé MongoDB

Il est nécessaire d’avoir suffisamment de connaissances sur les étapes du pipeline d’agrégation pour effectuer des opérations d’agrégation à l’aide de MongoDB. Ce tutoriel explorera l’étape $sort avec un exemple pour effectuer le tri agrégé MongoDB.

Tri agrégé MongoDB

Prenons un scénario pour pratiquer les exemples de code. Nous avons une collection nommée student qui contient des informations de base.

Vous pouvez également utiliser les requêtes suivantes pour être sur la même page avec nous.

Exemple de code :

> 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();

PRODUCTION:

{
        "_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
}

Ensuite, nous voulons déterminer le postcode qui abrite le nombre maximum d’étudiants mais sous forme triée. Pour ce faire, consultez l’exemple de code suivant.

Exemple de code :

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

PRODUCTION:

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

Ici, nous utilisons la fonction aggregate() qui calcule les valeurs agrégées des données de la collection spécifiée ou d’une vue. Dans la méthode aggregate(), nous regroupons les documents en tenant compte du champ postcode.

De plus, nous renvoyons le postcode comme _id, et les étudiants comptent dans chaque postcode comme des students. Ici, nous utilisons le $sum pour obtenir le nombre d’étudiants pour chaque postcode.

Le $sum calcule et renvoie la somme collective de la valeur numérique en ignorant les valeurs non numériques.

Enfin, nous utilisons l’étape $sort pour les trier selon les besoins du projet par ordre croissant ou décroissant. Le 1 est utilisé pour l’ordre croissant tandis que 1 est utilisé pour l’ordre décroissant.

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