MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

allowDiskUse in Aggregation Framework con il driver C# MongoDB

Usa l'altro overload di Aggregate che accetta un parametro AggregateArgs e ti offre un maggiore controllo sull'operazione, inclusa l'impostazione di 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();

Si noti che il tipo restituito di questo overload di Aggregate è IEnumerable, quindi non è più necessario utilizzare la proprietà ResultDocuments.

Giusto per essere chiari, il Select viene eseguito lato client. Potresti essere in grado di fare in modo che i documenti che escono dalla tua pipeline di aggregazione possano essere deserializzati direttamente nelle istanze di una delle tue classi.