Во-первых, это на самом деле поднимается в следующей версии 8MB
или 16MB
... но я думаю, чтобы представить это в перспективе, Элиот из 10gen (который разработал MongoDB) считает это лучше:
РЕДАКТИРОВАТЬ: размер был официально "поднят" до16MB
Итак, в вашем примере с блогом, 4MB на самом деле очень много. Например, полный несжатый текст «Войны миров» составляет всего 364k (html):
http://www.gutenberg.org/etext/36
Если ваш блог так долго с таким количеством комментариев, я, например, не буду его читать :)
Для трекбэков, если вы выделите им 1 МБ, вы можете легко получить более 10 КБ (возможно, ближе к 20 КБ).
Так что за исключением действительно странных ситуаций, это будет прекрасно работать. И в случае исключения или спама, я действительно не думаю, что вы все равно хотите объект 20 МБ. Я считаю, что ограничение трекбэков как 15k или около того имеет большой смысл независимо от производительности. Или, по крайней мере, специальный корпус, если это когда-нибудь случится.
-Eliot
Я думаю, что вам будет довольно трудно достичь предела ... и со временем, если вы обновитесь ... вам придется беспокоиться все меньше и меньше.
Суть ограничения заключается в том, что вы не используете всю оперативную память на своем сервере (так как вам нужно загрузить все MB
документы в оперативную память при запросе).
Таким образом, ограничение составляет несколько% от нормальной используемой оперативной памяти в общей системе ... которая будет расти из года в год.
Замечание о хранении файлов в MongoDB
Если вам нужно хранить документы (или файлы) больше, чем 16MB
вы можете использовать GridFS API, который автоматически разбивает данные на сегменты и направляет их обратно вам (таким образом, избегая проблемы с ограничениями размера / оперативной памяти.)
Вместо того, чтобы хранить файл в одном документе, GridFS делит файл на части или порции и сохраняет каждый фрагмент как отдельный документ.
GridFS использует две коллекции для хранения файлов. В одной коллекции хранятся фрагменты файлов, а в другой - метаданные файлов.
Вы можете использовать этот метод для хранения изображений, файлов, видео и т. Д. В базе данных так же, как в базе данных SQL. Я использовал это, чтобы даже хранить мульти гигабайтные видеофайлы.