BsonDocument
lze převést na IPipelineStageDefinition. Chcete-li získat požadovaný dokument Bson:
var addFieldsDefinitionDoc = BsonDocument.Parse(addFieldsDefinition.ToString());
var stageElement = new BsonElement("$addFields", addFieldsDefinitionDoc);
var stage = new BsonDocument(stageElement)
Poté jej přidáte pomocí:
aggregate = aggregate.AppendStage(stage);
Nejsem si jistý, zda aggregate.Stages.Add
udělá totéž nebo ne, ale myslím AppendStage je pravděpodobně lepší způsob, jak to udělat (ačkoli jsem nenašel žádnou dokumentaci, která by mi říkala, jaký je správný způsob, jak dělat většinu věcí, takže to bylo nalezeno metodou pokusu a omylu a kontrolou zdroje, abyste viděli, jak věci fungují)...
Můžete dokonce přidat další fáze pomocí normálních funkcí tvůrce scén, jako například:
aggregate = aggregate.Project(projectionDefinition);
nebo dokonce
aggregate = aggregate
.AppendStage(stage)
.Project(projectionDefinition);