¿Cómo puedo almacenar imágenes en una base de datos MongoDB en lugar de solo texto? ¿Puedo crear una matriz de imágenes en una base de datos MongoDB? ¿Será posible hacer lo mismo para los videos?
GridFS es para documentos> 16 MB. No todos los datos binarios son tan grandes. Además de poder superar ese límite, ¿hay otros beneficios al usar GridFS en lugar de solo el tipo BinData?
Brandon Fitzpatrick
3
Los videos tenderán a ser> 16 MB, por lo que esta respuesta probablemente sea razonable. Quizás debería mencionar esto sin embargo.
Chanoch
1
alguna otra solución, en lugar de usar GridFS?
Abhishek Mani
1
@AbhishekMani la otra solución es no almacenarlos en MongoDB en absoluto. Ahora, en 2018, es infinitamente más fácil escribir estos datos en algo como el almacenamiento S3 de Amazon o Azure BLOB.
Los documentos MongoDB BSON tienen un límite de 16 MB. Entonces, si el tamaño total de su matriz de archivos es menor que eso, puede almacenarlos directamente en su documento utilizando el tipo de datos BinData .
Videos, imágenes, PDF, hojas de cálculo, etc., no importa, todos reciben el mismo trato. Depende de su aplicación devolver un encabezado de tipo de contenido apropiado para mostrarlos.
Hay un complemento Mongoose disponible en NPM llamado mongoose-file. Le permite agregar un campo de archivo a un esquema de mangosta para cargar archivos. Nunca lo he usado, pero podría resultar útil. Si las imágenes son muy pequeñas, podría codificarlas en Base64 y guardar la cadena en la base de datos.
Puede usar el tipo de datos bin si está utilizando algún lenguaje de script para almacenar archivos / imágenes en MongoDB. Los datos bin se desarrollan para almacenar archivos de pequeño tamaño.
Consulte su controlador de lenguaje de scripting. Para PHP, haga clic aquí .
base64
, consulte stackoverflow.com/questions/11442356 También encontré menge.io/2015/03/24/storing-small-images-in- mongodb un muy buen punto de partida.Respuestas:
Consulte los documentos de GridFS para obtener detalles sobre el almacenamiento de dichos datos binarios.
El soporte para su idioma específico debe estar vinculado en la parte inferior de la pantalla.
fuente
Los documentos MongoDB BSON tienen un límite de 16 MB. Entonces, si el tamaño total de su matriz de archivos es menor que eso, puede almacenarlos directamente en su documento utilizando el tipo de datos BinData .
Videos, imágenes, PDF, hojas de cálculo, etc., no importa, todos reciben el mismo trato. Depende de su aplicación devolver un encabezado de tipo de contenido apropiado para mostrarlos.
Consulte la documentación de GridFS para obtener más detalles.
fuente
Puedes probar este:
fuente
http://blog.mongodb.org/post/183689081/storing-large-objects-and-files-in-mongodb
Hay un complemento Mongoose disponible en NPM llamado mongoose-file. Le permite agregar un campo de archivo a un esquema de mangosta para cargar archivos. Nunca lo he usado, pero podría resultar útil. Si las imágenes son muy pequeñas, podría codificarlas en Base64 y guardar la cadena en la base de datos.
Almacenar algunos archivos pequeños (de menos de 1 MB) con MongoDB en NodeJS SIN GridFS
fuente
Puede usar el tipo de datos bin si está utilizando algún lenguaje de script para almacenar archivos / imágenes en MongoDB. Los datos bin se desarrollan para almacenar archivos de pequeño tamaño.
Consulte su controlador de lenguaje de scripting. Para PHP, haga clic aquí .
fuente
instalar debajo de las bibliotecas
conecta tu mongo db:
Definir esquema de base de datos
usando el middleware Multer para cargar la foto en el lado del servidor.
post req a nuestro db
fuente
En tu opinión:
Con este código, puede agregar imágenes individuales y múltiples en MongoDB.
fuente
Esto funcionó para mí
fuente