πBucket
Documents distribution
Bucket - $bucket
var travelersCollection = database
.GetCollection<Traveler>(Constants.TravelersCollection);
var aggregate = travelersCollection.Aggregate();
var bucket = aggregate.Bucket(
t => t.Age,
new[] { 20, 32, 45, 60, 80 },
g => new
{
_id = default(int),
averageAge = g.Average(e => e.Age),
totalTravelers = g.Count()
});
var bucketResults = await bucket.ToListAsync();db.travelers.aggregate([
{
"$bucket":{
"groupBy":"$age",
"boundaries":[20,32, 45,60,80],
"output":{
"averageAge":{
"$avg":"$age"
},
"totalTravelers":{
"$sum":1
}
}
}
}
])
// Result
/* 1 */
{
"_id" : 20,
"averageAge" : 26.444444444444443,
"totalTravelers" : 9
},
/* 2 */
{
"_id" : 32,
"averageAge" : 36,
"totalTravelers" : 14
},
/* 3 */
{
"_id" : 45,
"averageAge" : 54,
"totalTravelers" : 9
},
/* 4 */
{
"_id" : 60,
"averageAge" : 64,
"totalTravelers" : 8
}BucketAuto - $bucketAuto
Last updated