MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie könnte ich eine Aggregation schreiben, ohne die maximale Dokumentgröße zu überschreiten?

Standardmäßig wird Ihnen das Ergebnis von Aggregationen in einem einzigen BSON-Dokument zurückgegeben, woher die Größenbeschränkung kommt. Wenn Sie mehr als das zurückgeben müssen, können Sie entweder:

  • die Ergebnisse in eine Sammlung ausgeben lassen. Sie tun dies, indem Sie Ihre Pipeline mit

    abschließen

    {"$out":"some-collection-name"}

    Anschließend fragen Sie diese Sammlung wie gewohnt ab (Sie müssen sie selbst löschen, wenn Sie damit fertig sind)

  • die Ergebnisse als Cursor zurückgeben lassen, indem Sie useCursor=True angeben wenn Sie Aggregat aufrufen.

Für beide Optionen ist Mongodb 2.6 erforderlich:Wenn Sie noch Mongodb 2.4 ausführen, ist dies nur eine grundlegende Grenze für Aggregationen.