MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Jeu de résultats MongoDB pour Aggregate()

Votre résultat est IEnumerable de BsonDocument, vous pouvez les sérialiser en objets C# à l'aide de BSonSerializer. Et cet extrait de code les écrit simplement sur votre console, mais vous pouvez voir que vous avez tapé des objets

 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);
 }

Et puis avoir une classe appelée Average, où le nom de la propriété correspond aux noms dans le BSonDocument, si vous voulez renommer ensuite (parce que _Id n'est pas si agréable en termes de c# concernant les conventions de nommage), vous pouvez ajouter un $project BsonDocument à votre pipeline .

 public class Average
 {
      public string _Id { get; set; }
      public Double AvgWeight {get; set; }
 }

Exemple de $project (ajoutez ceci dans votre pipeline juste avant le tri

 var project = new BsonDocument 
            { 
                { 
                    "$project", 
                    new BsonDocument 
                        { 
                            {"_id", 0}, 
                            {"Species","$_id"},
                            {"AvgWeight", "$AvgWeight"}, 
                        } 
                } 
            };