In CSHARP-4220 we added support for specifying the documents for the $documents as either an AggregationExpressionDefinition or as a sequence of documents:
database.Aggregate().Documents(aggregationExpression)
// or
collection.Aggregate().Documents(sequenceOfDocuments)
We would like to investigate a new overload that would translate a C# Expression to MQL to generate the documents server side.
This might look like this:
database.Aggregate().Documents((NoPipelineInput _) => <expression>)
Where <expression> would be executed server side.