Seu resultado é IEnumerable de BsonDocument, você pode serializá-los para objetos C# usando o BsonSerializer. E este trecho de código apenas os grava em seu console, mas você pode ver que digitou objetos
List<Average> returnValue = new List<Average>();
returnValue.AddRange(documents.Select(x=> BsonSerializer.Deserialize<Average>(x)));
foreach (var obj in returnValue)
{
Console.WriteLine("Species {0}, avg weight: {1}",returnValue._Id,returnValue.AvgWeight);
}
E então tenha uma classe chamada Average, onde o nome da propriedade corresponde aos nomes no BSoDocument, se você quiser renomeá-lo (porque _Id não é tão bom em termos de c# sobre convenções de nomenclatura), você pode adicionar um $project BsonDocument ao seu pipeline .
public class Average
{
public string _Id { get; set; }
public Double AvgWeight {get; set; }
}
$project sample (adicione isso no seu pipeline antes de classificar
var project = new BsonDocument
{
{
"$project",
new BsonDocument
{
{"_id", 0},
{"Species","$_id"},
{"AvgWeight", "$AvgWeight"},
}
}
};