sql >> Database >  >> NoSQL >> MongoDB

MongoDB-resultatenset voor Aggregate()

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



  1. Nodejs UUIDv4 produceert een constante id-waarde bij gebruik in Mongoose

  2. Waarom kan ik niet updaten naar de nieuwste MongoDB met Homebrew?

  3. MongoDB kan niet starten - ***afbreken na fassert()-fout

  4. Hoe optimistische vergrendeling te gebruiken met Spring Data MongoDB?