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.