BsonDocument
IPipelineStageDefinitionに変換できます。必要なBsonDocumentを取得するには、次のようにします。
var addFieldsDefinitionDoc = BsonDocument.Parse(addFieldsDefinition.ToString());
var stageElement = new BsonElement("$addFields", addFieldsDefinitionDoc);
var stage = new BsonDocument(stageElement)
次に、それを追加するには、次を使用します:
aggregate = aggregate.AppendStage(stage);
aggregate.Stages.Add
かどうかはわかりません 同じことをするかどうかはわかりませんが、私は考えます AppendStageはおそらくそれを行うためのより良い方法です(ほとんどのことを行う正しい方法を教えてくれるドキュメントは見つかりませんでしたが、これは試行錯誤とソースの検査によってどのように機能するかを調べました)...
次のような通常のステージビルダー関数を使用して、ステージを追加することもできます。
aggregate = aggregate.Project(projectionDefinition);
または
aggregate = aggregate
.AppendStage(stage)
.Project(projectionDefinition);