sql >> Database >  >> NoSQL >> MongoDB

$addFields gebruiken in MongoDB Driver voor C#

Een BsonDocument kan worden omgezet in een IPipelineStageDefinition. Om het BsonDocument te krijgen dat u wilt, wilt u het volgende:

var addFieldsDefinitionDoc = BsonDocument.Parse(addFieldsDefinition.ToString());
var stageElement = new BsonElement("$addFields", addFieldsDefinitionDoc);
var stage = new BsonDocument(stageElement)

Om het toe te voegen, gebruik je gewoon:

aggregate = aggregate.AppendStage(stage);

Ik weet niet zeker of aggregate.Stages.Add hetzelfde zou doen of niet, maar ik denk AppendStage is waarschijnlijk de betere manier om het te doen (hoewel ik geen documentatie heb gevonden die me vertelt wat de juiste manier is om de meeste dingen te doen, dus dit werd gevonden met vallen en opstaan ​​en het inspecteren van de bron om te zien hoe de dingen werken)...

Je kunt zelfs extra fasen toevoegen met behulp van de normale functies voor het bouwen van een podium, zoals:

aggregate = aggregate.Project(projectionDefinition);

of zelfs

aggregate = aggregate
    .AppendStage(stage)
    .Project(projectionDefinition);



  1. MongoDB-query vergelijkt 2 velden in dezelfde verzameling zonder $where

  2. MongoDb achtergrondindexering en unieke index

  3. Een collectie binnen een collectie

  4. Hoe alle hosts toe te staan ​​tot een replicaset in mongodb