Uw resultaat is IEnumerable van BsonDocument, u kunt ze serialiseren naar C#-objecten met behulp van de BsonSerializer. En dit codefragment schrijft ze gewoon naar je console, maar je kunt zien dat je getypte objecten hebt
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);
}
En heb dan een klasse met de naam Average, waar de naam van de eigenschap overeenkomt met de namen in het BsonDocument, als je de naam wilt wijzigen (omdat _Id niet zo mooi is in c#-termen met betrekking tot naamgevingsconventies), kun je een $project BsonDocument toevoegen aan je pijplijn .
public class Average
{
public string _Id { get; set; }
public Double AvgWeight {get; set; }
}
$project voorbeeld (voeg dit toe aan je pijplijn net voor het sorteren
var project = new BsonDocument
{
{
"$project",
new BsonDocument
{
{"_id", 0},
{"Species","$_id"},
{"AvgWeight", "$AvgWeight"},
}
}
};