Zunächst einmal wird dies tatsächlich in der nächsten Version von 8MB
oder 16MB
... angesprochen, aber ich denke, um dies ins rechte Licht zu rücken, bringt Eliot von 10gen (der MongoDB entwickelt hat) es am besten auf den Punkt:
EDIT: Die Größe wurde offiziell auf erhöht16MB
In Ihrem Blog-Beispiel sind 4 MB also tatsächlich eine ganze Menge. Zum Beispiel ist der vollständige unkomprimierte Text von "War of the Worlds" nur 364 KB (html):
http://www.gutenberg.org/etext/36
Wenn dein Blog-Beitrag so lang ist und so viele Kommentare enthält, werde ich ihn nicht lesen :)
Wenn Sie für Trackbacks 1 MB zugewiesen haben, können Sie leicht mehr als 10.000 (wahrscheinlich näher an 20.000) haben.
Abgesehen von wirklich bizarren Situationen wird es also großartig funktionieren. Und im Ausnahmefall oder bei Spam glaube ich wirklich nicht, dass Sie sowieso ein 20-MB-Objekt möchten. Ich denke, dass es sehr sinnvoll ist, Trackbacks auf etwa 15.000 zu begrenzen, unabhängig von der Leistung. Oder zumindest ein spezielles Gehäuse, falls es jemals passieren sollte.
-Eliot
Ich denke, es wird Ihnen ziemlich schwer fallen, das Limit zu erreichen ... und im Laufe der Zeit müssen Sie sich immer weniger Sorgen machen, wenn Sie ein Upgrade durchführen.
Der Hauptpunkt des Limits besteht darin, dass Sie nicht den gesamten Arbeitsspeicher Ihres Servers verbrauchen (da Sie das gesamte MB
Dokument bei der Abfrage in den Arbeitsspeicher laden müssen ).
Das Limit liegt also bei einigen Prozent des normal nutzbaren Arbeitsspeichers auf einem gemeinsamen System ... der von Jahr zu Jahr weiter wachsen wird.
Hinweis zum Speichern von Dateien in MongoDB
Wenn Sie Dokumente (oder Dateien) speichern müssen, die größer sind als 16MB
Sie, können Sie die GridFS-API verwenden, die die Daten automatisch in Segmente aufteilt und an Sie zurücksendet (wodurch das Problem mit Größenbeschränkungen / RAM vermieden wird).
Anstatt eine Datei in einem einzelnen Dokument zu speichern, unterteilt GridFS die Datei in Teile oder Blöcke und speichert jeden Block als separates Dokument.
GridFS verwendet zwei Sammlungen zum Speichern von Dateien. Eine Sammlung speichert die Dateiblöcke und die andere speichert Dateimetadaten.
Mit dieser Methode können Sie Bilder, Dateien, Videos usw. in der Datenbank speichern, ähnlich wie in einer SQL-Datenbank. Ich habe dies sogar verwendet, um Multi-Gigabyte-Videodateien zu speichern.