結果はBsonDocumentのIEnumerableであり、BSonSerializerを使用してそれらをC#オブジェクトにシリアル化できます。そして、このコードスニペットはそれらをコンソールに書き込むだけですが、オブジェクトを入力したことがわかります
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);
}
次に、Averageというクラスがあります。プロパティ名はBSonDocumentの名前と一致します。名前を変更する場合は(命名規則に関するc#の用語では_Idがあまり良くないため)、$projectBsonDocumentをパイプラインに追加できます。 。
public class Average
{
public string _Id { get; set; }
public Double AvgWeight {get; set; }
}
$ projectサンプル(これをソートの直前にパイプラインに追加します
var project = new BsonDocument
{
{
"$project",
new BsonDocument
{
{"_id", 0},
{"Species","$_id"},
{"AvgWeight", "$AvgWeight"},
}
}
};