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(); } }