No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Filtrado y Ordenación de Datos en MongoDB Compass

5/21
Recursos

¿Cómo crear una operación de agregación con MongoDB?

Ah, la magia del análisis de datos en tiempo real. Cuando nos enfrentamos a desafíos de grandes cantidades de datos en bases como las de Airbnb, se vuelve crucial colearse en el intricando mundo de las operaciones de agregación, especialmente en plataformas como MongoDB. Vamos a descubrir los encantos de esta herramienta.

¿Qué operador usamos para filtrar datos?

El primer paso en nuestra operativa es el uso del operador match. Este operador es similar a la cláusula WHERE en bases de datos relacionales y nos permite seleccionar un subconjunto específico de registros. En nuestro caso, comenzaremos por enfocarnos únicamente en las propiedades de Airbnb en Estados Unidos. El campo a utilizar para este filtro es address.country_code. El código del filtro sería algo así:

{
  "address.country_code": "US"
}

¿Cómo ordenamos los datos por precio?

Una vez que hemos filtrado nuestros datos de interés, el siguiente paso es ordenarlos. El operador sort nos permite hacerlo eficientemente. Como nuestro objetivo es encontrar las propiedades más económicas, ordenaremos sobre el campo price de forma ascendente, utilizando 1 en el criterio de orden:

{
  "price": 1
}

¿Cómo limitar la cantidad de resultados?

Finalmente, necesitamos reducir la cantidad de documentos que analizamos a las cinco propiedades más económicas. Aquí entra en juego el operador limit, que restringe el número de documentos devueltos. Esencialmente, queremos solo los cinco primeros registros:

{
  "$limit": 5
}

Estas tres etapas de filtrado, ordenamiento y limitación nos ayudan a cumplir con nuestra tarea inicial de encontrar las propiedades más económicas de Airbnb en Estados Unidos. A través de este proceso, optimizamos el uso de recursos al trabajar solo con los datos necesarios desde el inicio.

¿Qué recomendaciones podemos tomar en cuenta?

  • Eficiencia: Siempre que sea posible, utiliza el operador match al inicio del pipeline. Reducir el subconjunto de datos desde el principio mejora la eficiencia de las operaciones.
  • Experimenta: Intenta realizar ajustes en estos operadores para obtener diferentes resultados o insights adicionales. La práctica te ayudará a afinar tus habilidades.
  • Colabora y comparte: No dudes en probar estos operadores en otros subconjuntos de datos y compartir tus hallazgos.

Ahora que ya tienes los conocimientos básicos para crear tu primer pipeline en MongoDB con operaciones de agregación, te animamos a que continúes explorando y perfeccionando tus técnicas. Continúa con esa curiosidad renovada y sigue avanzando en el dominio de tus habilidades en bases de datos MongoDB.

Aportes 4

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Si lo realizas con la extensión de Mongo db en VS Code: ```js use('sample_airbnb') db.listingsAndReviews.aggregate( { $match: {"address.country":"United States"} }, { $project: { "price": 1, "address": 1 } }, { $sort: {"price":1} }, { $limit: 5 } ) ```En este ejemplo utilicé "$project" para solo visualizar "price" y "address".
Comparto mis apuntes personales sobre **MongoDB** y específicamente sobre este tema: <https://github.com/JimcostDev/mongodb_developer_path/tree/master/aggregation-framework>

operador: Cantidad

var db=db.getSiblingDB("sample_airbnb")

var result = db.listingsAndReviews.aggregate(
[

    {
      $match:{
          "address.country_code": "US",
        },
    },

    {
      $sort:{
          price: 1,
        },
    },

    {
      $count: "cantidad",
    },
  ]
)

print(result)

#Ejecucion:
PS D:\Usuarios\Aggregations> mongosh --quiet ./ejemplo01.js 

#Resultado:
[ { cantidad: 1222 } ]
```js // con query language seria asi: use('sample_airbnb') db.listingsAndReviews.find( {"address.country":"United States"}, {"name":1, "price":1}) // proyeccion .sort({"price":1}) .limit(5) ```