एक 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
मैं ऐसा ही करूंगा या नहीं, लेकिन मैं सोचता हूं एपेंडस्टेज शायद इसे करने का बेहतर तरीका है (हालांकि मुझे कोई दस्तावेज नहीं मिला है जो मुझे बता रहा है कि ज्यादातर चीजों को करने का सही तरीका क्या है, इसलिए यह परीक्षण और त्रुटि के माध्यम से पाया गया और यह देखने के लिए स्रोत का निरीक्षण किया गया कि चीजें कैसे काम करती हैं) ...
आप सामान्य स्टेज बिल्डर फ़ंक्शंस का उपयोग करके अतिरिक्त चरण भी जोड़ सकते हैं जैसे:
aggregate = aggregate.Project(projectionDefinition);
या यहां तक कि
aggregate = aggregate
.AppendStage(stage)
.Project(projectionDefinition);