Como posso armazenar imagens em um banco de dados MongoDB em vez de apenas texto? Posso criar uma matriz de imagens em um banco de dados MongoDB? Será possível fazer o mesmo para vídeos?
O GridFS é para documentos> 16 MB. Nem todos os dados binários são tão grandes. Além de ser capaz de superar esse limite, existem outros benefícios em usar o GridFS em vez de apenas o tipo BinData?
precisa saber é o seguinte
3
Os vídeos tendem a ter mais de 16 MB; portanto, essa resposta provavelmente é razoável. Talvez deva mencionar isso embora.
Chanoch
1
qualquer outra solução, em vez de usar o GridFS?
Abhishek Mani 29/10
1
@AbhishekMani a outra solução é não armazená-los no MongoDB. Agora, em 2018, é infinitamente mais fácil gravar esses dados em algo como o armazenamento S3 ou Azure BLOB da Amazon.
Os documentos do MongoDB BSON são limitados a 16 MB. Portanto, se o tamanho total da sua matriz de arquivos for menor que isso, você poderá armazená-los diretamente no seu documento usando o tipo de dados BinData .
Vídeos, imagens, PDFs, planilhas etc. - não importa, todos são tratados da mesma forma. Cabe ao seu aplicativo retornar um cabeçalho de tipo de conteúdo apropriado para exibi-los.
Existe um plug-in do Mongoose disponível no NPM chamado mongoose-file. Permite adicionar um campo de arquivo a um esquema do Mongoose para upload de arquivos. Eu nunca o usei, mas pode ser útil. Se as imagens forem muito pequenas, você poderá codificá-las pelo Base64 e salvar a sequência no banco de dados.
Você pode usar o tipo de dados bin se estiver usando alguma linguagem de script para armazenar arquivos / imagens no MongoDB. Os dados do compartimento são desenvolvidos para armazenar um tamanho pequeno de arquivos.
Consulte o driver da linguagem de script. Para PHP, clique aqui .
base64
, consulte stackoverflow.com/questions/11442356 Também encontrei menge.io/2015/03/24/storing-small-images-in- mongodb é um excelente ponto de partida.Respostas:
Consulte os documentos do GridFS para obter detalhes sobre como armazenar esses dados binários.
O suporte para o seu idioma específico deve estar vinculado na parte inferior da tela.
fonte
Os documentos do MongoDB BSON são limitados a 16 MB. Portanto, se o tamanho total da sua matriz de arquivos for menor que isso, você poderá armazená-los diretamente no seu documento usando o tipo de dados BinData .
Vídeos, imagens, PDFs, planilhas etc. - não importa, todos são tratados da mesma forma. Cabe ao seu aplicativo retornar um cabeçalho de tipo de conteúdo apropriado para exibi-los.
Confira a documentação do GridFS para mais detalhes.
fonte
Você pode tentar este:
fonte
http://blog.mongodb.org/post/183689081/storing-large-objects-and-files-in-mongodb
Existe um plug-in do Mongoose disponível no NPM chamado mongoose-file. Permite adicionar um campo de arquivo a um esquema do Mongoose para upload de arquivos. Eu nunca o usei, mas pode ser útil. Se as imagens forem muito pequenas, você poderá codificá-las pelo Base64 e salvar a sequência no banco de dados.
Armazenando alguns arquivos pequenos (abaixo de 1 MB) com o MongoDB no NodeJS SEM GridFS
fonte
Você pode usar o tipo de dados bin se estiver usando alguma linguagem de script para armazenar arquivos / imagens no MongoDB. Os dados do compartimento são desenvolvidos para armazenar um tamanho pequeno de arquivos.
Consulte o driver da linguagem de script. Para PHP, clique aqui .
fonte
instalar abaixo das bibliotecas
conecte seu mongo db:
Definir esquema do banco de dados
usando o middleware Multer para fazer upload da foto no lado do servidor.
pós req para o nosso db
fonte
Na sua opinião:
Com esse código, você pode adicionar imagens únicas e múltiplas no MongoDB.
fonte
Isso funcionou para mim,
fonte