Gebruik de andere overbelasting van Aggregate die een AggregateArgs-parameter nodig heeft en u meer controle geeft over de bewerking, inclusief het instellen van 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();
Houd er rekening mee dat het retourtype van deze overbelasting van Aggregate IEnumerable
Voor alle duidelijkheid, de Select wordt client-side uitgevoerd. Je kunt het misschien zo regelen dat de documenten die uit je aggregatiepijplijn komen, direct kunnen worden gedeserialiseerd naar instanties van een van je klassen.