AggregateArgsパラメーターを受け取り、AllowDiskUseの設定など、操作をより詳細に制御できるAggregateの他のオーバーロードを使用します。
var pipeline = new BsonDocument[0]; // replace with a real pipeline
var aggregateArgs = new AggregateArgs { AllowDiskUse = true, Pipeline = pipeline };
var aggregateResult = collection.Aggregate(aggregateArgs);
var users = aggregateResult.Select(x =>
new User
{
Influence = x["Influence"].ToDouble(),
User = new SMBUser(x["user"].AsBsonDocument)
}).ToList();
Aggregateのこのオーバーロードの戻りタイプはIEnumerable
明確にするために、Selectはクライアント側で実行されています。アグリゲーションパイプラインから出てくるドキュメントをクラスの1つのインスタンスに直接逆シリアル化できるように調整できる場合があります。