Použijte další přetížení Aggregate, které přebírá parametr AggregateArgs a poskytuje vám větší kontrolu nad operací, včetně nastavení AllowDiskUse:
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();
Všimněte si, že návratový typ tohoto přetížení Aggregate je IEnumerable
Aby bylo jasno, Select se provádí na straně klienta. Možná to dokážete zařídit tak, aby dokumenty vycházející z vašeho agregačního kanálu mohly být přímo deserializovány do instancí jedné z vašich tříd.