Ich habe die exceeds maximum document size problem
-Ausnahme von der Abfrage wie folgt erhalten:
Ich habe es behoben, indem ich den Operator $project
hinzugefügt habe,
Aber was ist, wenn das Dokument immer noch über 16MB
liegt, obwohl ich $project
verwende?
Was kann ich tun? irgendeine Idee ? Danke
%Vor%Standardmäßig wird das Ergebnis von Aggregationen in einem einzelnen BSON-Dokument an Sie zurückgegeben, von wo die Größenbeschränkung herkommt. Wenn Sie mehr als das zurückgeben müssen, können Sie entweder:
Lassen Sie die Ergebnisse in einer Sammlung ausgeben. Sie tun dies, indem Sie Ihre Pipeline mit
abschließen{"$ out": "Sammlungsname"}
Sie fragen dann diese Sammlung als normal ab (Sie müssen sie selbst löschen, wenn Sie damit fertig sind)
Die Ergebnisse werden als Cursor zurückgegeben, indem Sie useCursor=True
angeben, wenn Sie das Aggregat aufrufen.
Beide Optionen benötigen mongodb 2.6: Wenn Sie mongodb 2.4 noch immer ausführen, ist dies nur eine grundlegende Grenze für Aggregationen.
Da @Frederick sagte, dass mindestens mongo 2.6 benötigt wird, hier ist der Link von der Mongo-Dokumentation, die ähnlich wie runCommand funktioniert, aber mit db.collection.aggreagate, beachte, dass für die Dokumentbegrenzung die Option "cursor" verwendet wird, für die Sortierbeschränkung die Option "allowDiskUse".