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

allowDiskUse i Aggregation Framework med MongoDB C# Driver

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, så du ikke længere behøver at bruge egenskaben ResultDocuments.

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.



  1. Mongoose:tildel felt af typen 'array of Strings'

  2. MongoDB Schema Planlægningstips

  3. hvordan man gemmer et billede i redis ved hjælp af python / PIL

  4. Fejlen ved, at mongoid returnerer det første dokument, når det påberåbes sidst?