MongoDB C#驱动程序2.0:如何从MapReduceAsync获取结果

MongoDB C#驱动程序2.0:如何从MapReduceAsync获取结果

我正在使用MongoDB版本3,C#驱动程序2.0,并将获得MapReduceAsync方法的结果。 我有这个集合“用户”:

{ "_id" : 1, "firstName" : "Rich", "age" : "18" } { "_id" : 2, "firstName" : "Rob", "age" : "25" } { "_id" : 3, "firstName" : "Sarah", "age" : "12" } 

VisualStudio中的代码:

 var map = new BsonJavaScript( @" var map = function() { emit(NumberInt(1), this.age); };"); var reduce = new BsonJavaScript(@" var reduce = function(key, values) { var sum = 0; values.forEach(function(item) { sum += NumberInt(item); }); return sum; };"); var coll = db.GetCollection("users"); var options = new MapReduceOptions();//what should be TResult? options.OutputOptions = MapReduceOutputOptions.Inline; var res = coll.MapReduceAsync(map, reduce, options).Result.ToListAsync(); //get the values of res... //or if the result is a list... foreach(var item in res) { //get the values and do something... } 

TResult可以是BsonDocument或表示类型reduce项的结果的特定类。

我想对于你的例子,你可以有这样的generics类:

 public class SimpleReduceResult { public string Id { get; set; } public T value { get; set; } } 

你的选择声明就是

 var options = new MapReduceOptions>();