Armazenamento de objetos e arquivos grandes no MongoDB
Avalie esse Tutorial
Objetos grandes, ou "arquivos", são facilmente armazenados no MongoDB. Não tem problema armazenar vídeos de 100 MB no banco de dados.
Isso tem uma série de vantagens em relação aos arquivos armazenados em um sistema de arquivos. Ao contrário de um sistema de arquivos, o banco de dados não terá problemas para lidar com milhões de objetos. Além disso, obtemos o poder do banco de dados ao lidar com esses dados: podemos fazer queries avançadas para encontrar um arquivo, usando índices; também podemos fazer coisas legais, como replicação de todo o conjunto de arquivos.
O MongoDB armazena objetos em um formato binário chamado BSON. BinData é um tipo de dados BSON para uma array de bytes binários. No entanto, os objetos MongoDB normalmente são limitados a 16 MB de tamanho. Para lidar com isso, os arquivos são "divididos" em vários objetos com menos de 255 KiB cada. Isso tem a vantagem adicional de nos permitir recuperar com eficiência um intervalo específico do arquivo fornecido.
Embora possamos escrever nosso próprio código em partes, um formato padrão para essa fragmentação em partes é predefinido, chamado GridFS. Todos os drivers oficiais do MongoDB e também o utilitário de linha de comando mongofiles são compatíveis com o GridFS.
Uma boa maneira de fazer um teste rápido desse local é testar o utilitário mongofiles. Consulte a documentação do MongoDB para obter mais informações sobre o GridFS.