DBAtlas · Atlas für Datenbankbetrieb

292: QueryExceededMemoryLimitNoDiskUseAllowed (Fehlercode 292)

MongoDB

Was 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.

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank