sql >> Base de Datos >  >> NoSQL >> MongoDB

allowDiskUse en el marco de agregación con el controlador MongoDB C#

Use la otra sobrecarga de Aggregate que toma un parámetro AggregateArgs y le brinda más control sobre la operación, incluida la configuración 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();

Tenga en cuenta que el tipo de devolución de esta sobrecarga de Aggregate es IEnumerable, por lo que ya no tiene que usar la propiedad ResultDocuments.

Para que quede claro, Select se está ejecutando en el lado del cliente. Es posible que pueda organizarlo para que los documentos que salen de su canalización de agregación puedan deserializarse directamente en instancias de una de sus clases.