Primeiro, isso realmente está sendo levantado na próxima versão para 8MB
ou 16MB
... mas acho que para colocar isso em perspectiva, Eliot da 10gen (que desenvolveu o MongoDB) coloca da melhor maneira:
EDIT: O tamanho foi oficialmente 'aumentado' para16MB
Portanto, no exemplo do seu blog, 4 MB são na verdade muitos. Por exemplo, o texto descompactado completo de "Guerra dos Mundos" tem apenas 364k (html):
http://www.gutenberg.org/etext/36
Se o seu blog é muito longo com tantos comentários, eu não o leio :)
Para trackbacks, se você dedicar 1 MB a eles, poderá facilmente ter mais de 10k (provavelmente mais perto de 20k)
Portanto, exceto em situações verdadeiramente bizarras, funcionará muito bem. E no caso de exceção ou spam, realmente não acho que você desejaria um objeto de 20 MB. Acho que limitar os trackbacks com mais ou menos 15k faz muito sentido, independentemente do desempenho. Ou pelo menos invólucro especial, se isso acontecer.
-Eliot
Acho que seria muito difícil atingir o limite ... e, com o tempo, se você atualizar ... precisará se preocupar cada vez menos.
O ponto principal do limite é que você não gaste toda a RAM do seu servidor (pois você precisará carregar todos os MB
s do documento na RAM ao consultá-lo.)
Portanto, o limite é de alguns% da RAM utilizável normal em um sistema comum ... que continuará crescendo ano a ano.
Nota sobre o armazenamento de arquivos no MongoDB
Se você precisar armazenar documentos (ou arquivos) maiores do que 16MB
você pode usar a API do GridFS, que dividirá automaticamente os dados em segmentos e os transmitirá de volta para você (evitando assim o problema com limites de tamanho / RAM).
Em vez de armazenar um arquivo em um único documento, o GridFS divide o arquivo em partes ou partes e armazena cada parte como um documento separado.
O GridFS usa duas coleções para armazenar arquivos. Uma coleção armazena os blocos de arquivos e a outra armazena metadados de arquivos.
Você pode usar esse método para armazenar imagens, arquivos, vídeos etc. no banco de dados, da mesma forma que você pode em um banco de dados SQL. Eu usei isso para armazenar até arquivos de vídeo com vários gigabytes.