sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB-resultatuppsättning för Aggregate()

Ditt resultat är IEnumerable av BsonDocument, du kan serialisera dem till C#-objekt med hjälp av BSonSerializer. Och det här kodavsnittet skriver dem bara till din konsol, men du kan se att du har skrivit objekt

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

Och ha sedan en klass som heter Average, där egenskapsnamnet matchar namnen i BSonDocumentet, om du vill byta namn då (eftersom _Id inte är så bra i c#-termer angående namnkonventioner), kan du lägga till ett $project BsonDocument till din pipeline .

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

$project sample (lägg till detta i din pipeline precis innan sortering

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



  1. MongoDB Aggregate - Fråga för att få det senaste objektet i grupp

  2. MongoDB $lt Aggregation Pipeline Operator

  3. Fel:Kunde inte ansluta till Redis på redis:6379:Namn eller tjänst okänd

  4. Matcha Två olika fält i Mongoose, Aggregate?