MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

allowDiskUse no framework de agregação com o driver MongoDB C#


Use a outra sobrecarga de Aggregate que usa um parâmetro AggregateArgs e oferece mais controle sobre a operação, incluindo a configuração 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();

Observe que o tipo de retorno dessa sobrecarga de Aggregate é IEnumerable para que você não precise mais usar a propriedade ResultDocuments.

Só para ficar claro, o Select está sendo executado do lado do cliente. Você pode organizá-lo para que os documentos que saem do pipeline de agregação possam ser desserializados diretamente em instâncias de uma de suas classes.