public void BucketAuto_with_granularity_should_add_expected_stage() { var collection = __database.GetCollection <BsonDocument>(__collectionNamespace.CollectionName); var subject = collection.Aggregate(); var groupBy = (AggregateExpressionDefinition <BsonDocument, BsonValue>) "$_id"; var buckets = 4; var options = new AggregateBucketAutoOptions { Granularity = AggregateBucketAutoGranularity.PowersOf2 }; var result = subject.BucketAuto(groupBy, buckets, options); var stage = result.Stages.Single(); var renderedStage = stage.Render(BsonDocumentSerializer.Instance, BsonSerializer.SerializerRegistry); renderedStage.Document.Should().Be("{ $bucketAuto : { groupBy : \"$_id\", buckets : 4, granularity : 'POWERSOF2' } }"); }
public void BucketAuto_with_granularity_should_return_expected_result() { RequireServer.Check().Supports(Feature.AggregateBucketStage); EnsureTestData(); var collection = __database.GetCollection <BsonDocument>(__collectionNamespace.CollectionName); var subject = collection.Aggregate(); var groupBy = (AggregateExpressionDefinition <BsonDocument, double>) "$_id"; var buckets = 4; var options = new AggregateBucketAutoOptions { Granularity = AggregateBucketAutoGranularity.PowersOf2 }; var result = subject.BucketAuto(groupBy, buckets, options).ToList(); var comparer = AggregateBucketAutoResultEqualityComparer <double> .Instance; result.WithComparer(comparer).Should().Equal( new AggregateBucketAutoResult <double>(0.5, 2.0, 1), new AggregateBucketAutoResult <double>(2.0, 4.0, 2), new AggregateBucketAutoResult <double>(4.0, 8.0, 1)); }
public IAggregateFluent <TNewResult> BucketAuto <TValue, TNewResult>(AggregateExpressionDefinition <BsonDocument, TValue> groupBy, int buckets, ProjectionDefinition <BsonDocument, TNewResult> output, AggregateBucketAutoOptions options = null) { return(BlockProvider.BucketAuto <TValue, TNewResult>(groupBy, buckets, output, options)); }
public IAggregateFluent <AggregateBucketAutoResult <TValue> > BucketAuto <TValue>(AggregateExpressionDefinition <BsonDocument, TValue> groupBy, int buckets, AggregateBucketAutoOptions options = null) { return(BlockProvider.BucketAuto <TValue>(groupBy, buckets, options)); }
public void BucketAuto_with_granularity_should_return_expected_result() { RequireServer.Check().Supports(Feature.AggregateBucketStage); EnsureTestData(); var collection = __database.GetCollection<BsonDocument>(__collectionNamespace.CollectionName); var subject = collection.Aggregate(); var groupBy = (AggregateExpressionDefinition<BsonDocument, double>)"$_id"; var buckets = 4; var options = new AggregateBucketAutoOptions { Granularity = AggregateBucketAutoGranularity.PowersOf2 }; var result = subject.BucketAuto(groupBy, buckets, options).ToList(); var comparer = AggregateBucketAutoResultEqualityComparer<double>.Instance; result.WithComparer(comparer).Should().Equal( new AggregateBucketAutoResult<double>(0.5, 2.0, 1), new AggregateBucketAutoResult<double>(2.0, 4.0, 2), new AggregateBucketAutoResult<double>(4.0, 8.0, 1)); }
public void BucketAuto_with_granularity_should_add_expected_stage() { var collection = __database.GetCollection<BsonDocument>(__collectionNamespace.CollectionName); var subject = collection.Aggregate(); var groupBy = (AggregateExpressionDefinition<BsonDocument, BsonValue>)"$_id"; var buckets = 4; var options = new AggregateBucketAutoOptions { Granularity = AggregateBucketAutoGranularity.PowersOf2 }; var result = subject.BucketAuto(groupBy, buckets, options); var stage = result.Stages.Single(); var renderedStage = stage.Render(BsonDocumentSerializer.Instance, BsonSerializer.SerializerRegistry); renderedStage.Document.Should().Be("{ $bucketAuto : { groupBy : \"$_id\", buckets : 4, granularity : 'POWERSOF2' } }"); }