Ordenación agregada de MongoDB

Mehvish Ashiq 13 junio 2022
Ordenación agregada de MongoDB

Es necesario tener suficiente conocimiento de las etapas de canalización de agregación para realizar operaciones de agregación utilizando MongoDB. Este tutorial explorará la etapa $sort con un ejemplo para realizar la ordenación agregada de MongoDB.

Ordenación agregada de MongoDB

Tengamos un escenario para practicar los ejemplos de código. Tenemos una colección llamada student que tiene información básica.

También puede utilizar las siguientes consultas para estar en la misma página con nosotros.

Código de ejemplo:

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

Producción :

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

A continuación, queremos determinar el postcode que alberga el máximo número de alumnos pero de forma ordenada. Para ello, consulte el siguiente código de ejemplo.

Código de ejemplo:

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

Producción :

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

Aquí, estamos usando la función aggregate() que calcula los valores agregados para los datos en la colección especificada o una vista. Dentro del método aggregate(), agrupamos los documentos teniendo en cuenta el campo postcode.

Además, devolvemos el postcode como _id, y los estudiantes cuentan en cada postcode como students. Aquí, usamos el $sum para obtener el número de estudiantes para cada postcode.

$sum calcula y devuelve la suma colectiva del valor numérico ignorando los valores no numéricos.

Finalmente, usamos la etapa $sort para clasificarlos según las necesidades del proyecto en orden ascendente o descendente. El 1 se usa para orden ascendente mientras que -1 se usa para orden descendente.

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

Artículo relacionado - MongoDB Sort