MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

allowDiskUse dans le cadre d'agrégation avec le pilote MongoDB C#

Utilisez l'autre surcharge d'Aggregate qui prend un paramètre AggregateArgs et vous donne plus de contrôle sur l'opération, y compris la définition de 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();

Notez que le type de retour de cette surcharge d'agrégat est IEnumerable, vous n'avez donc plus besoin d'utiliser la propriété ResultDocuments.

Juste pour être clair, le Select est exécuté côté client. Vous pourrez peut-être l'organiser de manière à ce que les documents sortant de votre pipeline d'agrégation puissent être directement désérialisés dans des instances de l'une de vos classes.