Su resultado es IEnumerable de BsonDocument, puede serializarlos en objetos C# usando BSonSerializer. Y este fragmento de código simplemente los escribe en su consola, pero puede ver que ha escrito 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);
}
Y luego tenga una clase llamada Promedio, donde el nombre de la propiedad coincida con los nombres en BSonDocument, si desea cambiar el nombre entonces (porque _Id no es tan bueno en términos de c # con respecto a las convenciones de nomenclatura), puede agregar $project BsonDocument a su canalización .
public class Average
{
public string _Id { get; set; }
public Double AvgWeight {get; set; }
}
$ muestra de proyecto (agregue esto en su tubería justo antes de ordenar
var project = new BsonDocument
{
{
"$project",
new BsonDocument
{
{"_id", 0},
{"Species","$_id"},
{"AvgWeight", "$AvgWeight"},
}
}
};