コード例 #1
0
        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' } }");
        }
コード例 #2
0
        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));
        }
コード例 #3
0
 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));
 }
コード例 #4
0
 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' } }");
        }