Exemplo n.º 1
0
 public void TestSerializeAnonymousClass()
 {
     object a = new { X = 1 };
     var json = a.ToJson();
     var expected = "{ 'X' : 1 }".Replace("'", "\"");
     Assert.AreEqual(expected, json);
 }
        /// <summary>
        /// Grouping , Sum and sorting
        /// </summary>
        async public Task AggregationRestaurant()
        {
            ExceptionDispatchInfo capturedException = null;
            try
            {
                // Example 1
                //var collection = database.GetCollection<BsonDocument>("restaurants");
                //var aggregate = collection.Aggregate().
                //    Group(new BsonDocument { { "_id", "$borough" }, { "count", new BsonDocument("$sum", 1) } });
                //var results = await aggregate.ToListAsync();


                //var expectedResults = new[]
                //{
                //    BsonDocument.Parse("{ _id : 'Staten Island', count : 969 }"),
                //    BsonDocument.Parse("{ _id : 'Brooklyn', count : 6086 }"),
                //    BsonDocument.Parse("{ _id : 'Manhattan', count : 10259 }"),
                //    BsonDocument.Parse("{ _id : 'Queens', count : 5656 }"),
                //    BsonDocument.Parse("{ _id : 'Bronx', count : 2338 }"),
                //    BsonDocument.Parse("{ _id : 'Missing', count : 51 }")
                //};

                var collection = database.GetCollection<BsonDocument>("restaurants");
                var aggregate = collection.Aggregate()
                    .Match(new BsonDocument { { "borough", "Queens" }, { "cuisine", "Brazilian" } })
                    .Group(new BsonDocument { { "_id", "$address.zipcode" }, { "count", new BsonDocument("$sum", 1) } });
                var results = await aggregate.ToListAsync();

                var expectedResults = new[]
                {
                    BsonDocument.Parse("{ _id : '11368', count : 1 }"),
                    BsonDocument.Parse("{ _id : '11106', count : 3 }"),
                    BsonDocument.Parse("{ _id : '11377', count : 1 }"),
                    BsonDocument.Parse("{ _id : '11103', count : 1 }"),
                    BsonDocument.Parse("{ _id : '11101', count : 2 }")
                };

                results.Should().BeEquivalentTo(expectedResults);
            }
            catch (Exception ex)
            {
                capturedException = ExceptionDispatchInfo.Capture(ex);
                Console.WriteLine("collection : error {0}", ex.Message);
            }
            if (capturedException != null)
            {
                capturedException.Throw();
            }
        }