sql >> Database >  >> NoSQL >> MongoDB

allowDiskUse in Aggregation Framework met MongoDB C# Driver

Gebruik de andere overbelasting van Aggregate die een AggregateArgs-parameter nodig heeft en u meer controle geeft over de bewerking, inclusief het instellen van 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();

Houd er rekening mee dat het retourtype van deze overbelasting van Aggregate IEnumerable is, zodat u de eigenschap ResultDocuments niet langer hoeft te gebruiken.

Voor alle duidelijkheid, de Select wordt client-side uitgevoerd. Je kunt het misschien zo regelen dat de documenten die uit je aggregatiepijplijn komen, direct kunnen worden gedeserialiseerd naar instanties van een van je klassen.



  1. Hoe aggregeren op datum wanneer een volledige tijdstempel wordt gegeven in het aggregatiekader?

  2. Enums in MongoDB

  3. Groepeer verschillende waarden en tellingen voor elke eigenschap in één zoekopdracht

  4. Redis-benchmarking voor hget- en hset-opdrachten