Brug den anden overbelastning af Aggregate, der tager en AggregateArgs-parameter og giver dig mere kontrol over handlingen, herunder indstilling af 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();
Bemærk, at returtypen for denne overbelastning af Aggregate er IEnumerable
Bare for at være klar, bliver Select udført på klientsiden. Du kan muligvis arrangere det, så de dokumenter, der kommer ud af din aggregeringspipeline, kan deserialiseres direkte til forekomster af en af dine klasser.