allowDiskUse
hat nichts mit der Beschränkung der Ergebnisgröße von 16 MB zu tun. Diese Einstellung steuert, ob Pipelineschritte wie $sort oder $group temporären Speicherplatz verwenden können, wenn sie mehr als 100 MB Arbeitsspeicher benötigen. Theoretisch könnte dies für eine beliebige Pipeline eine sehr große Menge an Speicherplatz sein. Persönlich war das nie ein Problem, aber das wird an Ihren Daten liegen.
Wenn Ihr Ergebnis mehr als 16 MB groß sein wird, müssen Sie die $out-Pipelinestufe verwenden, um die Daten an eine Sammlung auszugeben, oder eine Pipeline-API verwenden, die einen Cursor zu den Ergebnissen zurückgibt, anstatt alle Daten inline zurückzugeben (für einige Treiber ist dies ist eine separate Methode, für andere ist es ein Flag, das an dieselbe Methode übergeben wird).