292: QueryExceededMemoryLimitNoDiskUseAllowed (Fehlercode 292)
MongoDBWas bedeutet das?
Eine Abfrage oder Aggregationsstufe hat das erlaubte Speicherlimit (Standard 100 MB) überschritten und ist fehlgeschlagen, weil Schreiben auf Disk nicht erlaubt war. Tritt meist in Sort- oder Group-Stufen auf.
Ursache
Sortierung im Speicher über große nicht indizierte Daten, große Aggregationsstufen $group/$sort, sehr große Zwischenergebnisse, die Einstellung allowDiskUse:false.
Lösung
Erlaube in der Aggregation das Auslagern auf Disk mit der Option allowDiskUse:true: db.collection.aggregate(pipeline, {allowDiskUse:true}). Senke den Speicherverbrauch, indem du die sortierten Felder indizierst. Filtere die Pipeline früh mit $match, um die verarbeitete Datenmenge zu verringern. Paginiere Ergebnisse bei Bedarf. Ab MongoDB 6.0 ist die Disk-Nutzung in den meisten Fällen standardmäßig aktiviert.