No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Agrupaciones avanzadas con $bucket y $bucketAuto

18/21
Recursos

Aportes 5

Preguntas 0

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

```js use('football') db.scorers.aggregate([ { $bucketAuto: { groupBy: '$goles', buckets: 5, output: { count: {$sum: 1} } } } ]) ```![](https://static.platzi.com/media/user_upload/image-45c7d39c-1458-45b6-ae13-c7e1178ba1b2.jpg)

Ejemplo con $bucketauto

var db=db.getSiblingDB("sample_airbnb")

db.listingsAndReviews.aggregate([
    {
        //similar al operador $match
        $bucketAuto:{
            groupBy: "$review_scores.review_scores_rating", //campo de referencia
            buckets: 4,
            granularity: R20
            output:{
                count:{$sum: 1}
            }
        }
    }

]
);

Para cumplir el reto utilice el operador $addToSet.

$bucket

var db=db.getSiblingDB("sample_airbnb")

db.listingsAndReviews.aggregate([
    {
        //similar al operador $match
        $bucket:{
            groupBy: "$review_scores.review_scores_rating", //campo de referencia
            boundaries:[0,50,70,85,100],
            default: "N/A",
            output:{
                count:{$sum: 1},
                tipopropiedad:{ $addToSet: "$property_type" }
            }
        }
    }

]
);

Los operadores $bucket y $bucketAuto son agrupaciones automaticos por rangos, creando subcolecciones.

$Bucket:

  • Se especifican los rangos que se desea usar.
  • Es necesario la palabra reservada 鈥渄efault鈥, para considerar excepciones.
  • Los limites (鈥渂oundaries鈥) tienen que estar ascendemente, y estos campos tienen que estar en la colecci贸n.
  • utiliza diferentes operadores

$bucketAuto:

  • MongoDB distribuye de manera autom谩tica el resultado de la colecci贸n.

Codigo visto en clase

// bucket.mongodb

use('sample_airbnb')

db,listingsAndRevies.aggregate([
    {
        bucket: {
            groupBy: {"$review_scores.review_scores_rating"},
            boundaries: [0, 50, 70, 85, 100],
            default: "N/A",
            output: {
                count: {$sum: 1}
            }
        }
    }
])

/// BucketAuto.mongodb

use('sample_airbnb')

db.listingsAndReviews.aggregate([
    {
        $bucketAuto: {
            groupBy: "$review_scores.review_scores_rating",
            buckets: 4,
            output: {
                count: { $sum: 1 }
            }
        }
    }
])