sql >> Base de Datos >  >> NoSQL >> MongoDB

Conjunto de resultados de MongoDB para Aggregate()

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"}, 
                        } 
                } 
            };