¿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?Almacenar imágenes en una base de datos MongoDB
Respuesta
Por favor ver las GridFS documentación para más detalles sobre el almacenamiento de dichos datos binarios.
El soporte para su idioma específico debe estar vinculado a en la parte inferior de la pantalla.
"Siempre se debe utilizar GridFS para almacenar archivos de más de 16 MB" - When should I use GridFS?
MongoDB BSON documents 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.
Vídeos, imágenes, archivos PDF, hojas de cálculo, etc. - no importa, todos ellos son tratados de la misma. Depende de su aplicación devolver un encabezado de tipo de contenido apropiado para mostrarlos.
Consulte GridFS documentation para obtener más información.
Puede intentar éste:
String newFileName = "my-image";
File imageFile = new File("https://stackoverflow.com/users/victor/images/image.png");
GridFS gfsPhoto = new GridFS(db, "photo");
GridFSInputFile gfsFile = gfsPhoto.createFile(imageFile);
gfsFile.setFilename(newFileName);
gfsFile.save();
http://blog.mongodb.org/post/183689081/storing-large-objects-and-files-in-mongodb
hay un plugin Mangosta disponibles en la NGP llamado mangosta-archivo. Le permite agregar un campo de archivo a un esquema de Mongoose para cargar archivos. Nunca lo he usado, pero podría ser útil. Si las imágenes son muy pequeñas, podría Base64 codificarlas y guardar la cadena en la base de datos.
Storing some small (under 1MB) files with MongoDB in NodeJS WITHOUT GridFS
Puede utilizar el tipo de datos bin si está utilizando cualquier lenguaje de script para almacenar archivos/imágenes en MongoDB. Bin data está desarrollado para almacenar archivos de pequeño tamaño.
Consulte el controlador del lenguaje de scripting. Para PHP, haga clic en here.
var upload = multer({dest: "./uploads"});
var mongo = require('mongodb');
var Grid = require("gridfs-stream");
Grid.mongo = mongo;
router.post('/:id', upload.array('photos', 200), function(req, res, next){
gfs = Grid(db);
var ss = req.files;
for(var j=0; j<ss.length; j++){
var originalName = ss[j].originalname;
var filename = ss[j].filename;
var writestream = gfs.createWriteStream({
filename: originalName
});
fs.createReadStream("./uploads/" + filename).pipe(writestream);
}
});
En su opinión:
<form action="/" method="post" enctype="multipart/form-data">
<input type="file" name="photos">
Con este código se puede añadir imágenes individuales, así como múltiples en MongoDB.
mejor manera de salvar la imagen En backend nodejs - Profesional Recomendado
var async = require('async');
var accessPath = path.join(__dirname, "../uploadLocation");
var folderName = new Date().getTime();
async.auto({
makeDir: function(next, results) {
makeDir(accessPath, folderName, next);
},
writeFile: ['makeDir', function(next, results) {
writeFile(accessPath, folderName, req.body.user.ImgData, req.body.user.email, next);
}],
}, function(err, success) {
if (err) {
console.log("error occurs while saving image")
} else {
console.log("success", success)
}
});
var makeDir = function(accessPath, folderName, next) {
try {
console.log("accessPath inside makeDir", accessPath, folderName)
fs.mkdirSync(accessPath + "/upload/user/" + folderName);
next(null, "done")
} catch (e) {
console.log("error in creating folder");
next(e, "Err")
}
}
var writeFile = function(accessPath, folderName, ImgData, email, next) {
var userImgName = email + ".jpg";
fs.writeFile(accessPath + "/upload/user/" + folderName + "/" + userImgName, ImgData, function(err, success) {
if (err) {
next(e, "Err")
} else {
console.log("success write file");
next(null, null);
}
});
}
- 1. Almacenar imágenes en Mongodb servirlas con Nodejs
- 2. Cómo almacenar imágenes en la base de datos SQLite
- 3. PHP - ¿Almacenar imágenes en datos de SESIÓN?
- 4. ¿Es posible almacenar javascript en una base de datos?
- 5. Almacenamiento de imágenes en una base de datos
- 6. Cargar y almacenar imágenes
- 7. ¿Cuál es el mejor formato para almacenar imágenes en una base de datos?
- 8. ¿Qué base de datos elegir (Cassandra, MongoDB,?) Para almacenar y consultar datos de eventos/log/métricas?
- 9. Almacenar archivos en disco o MongoDB
- 10. crear base de datos segura en mongodb
- 11. DataSize base de datos en MongoDB
- 12. Métrica para encontrar imágenes similares en una base de datos
- 13. MongoDB GridFs con C#, ¿cómo almacenar archivos como imágenes?
- 14. MongoDB como la base de datos principal?
- 15. ¿Qué tipo de datos usar en MySQL para almacenar imágenes?
- 16. ¿Cuál es la mejor forma de almacenar datos individuales no repetitivos en una base de datos?
- 17. ¿Almacenar imágenes de perfil de usuario en el disco o en la base de datos?
- 18. Borrar todo en una base de datos MongoDB
- 19. Forma estándar de almacenar nombres en una base de datos
- 20. libros de almacenar en una base de datos
- 21. Almacenar una estructura de directorio en la base de datos
- 22. Almacenar en Datos de Sesión vs almacenar en Base de Datos Sql para datos temporales
- 23. ¿Debo usar GridFS o datos binarios para almacenar y recuperar imágenes de MongoDB?
- 24. Cómo almacenar objetos TimeZoneInfo en una base de datos?
- 25. ¿Es "malo" almacenar XML en una base de datos?
- 26. Cómo almacenar html en una base de datos mysql
- 27. Almacenar un HashMap en una base de datos SQL
- 28. ¿Es bueno almacenar cadenas largas en una base de datos?
- 29. cómo almacenar datos en la base de datos en HTML5
- 30. Arquitectura de base de datos MongoDB
GridFS es para los documentos> 16 MB. No todos los datos binarios son así de grandes. Además de poder sobrepasar ese límite, ¿hay algún otro beneficio al usar GridFS en lugar de solo el tipo BinData? –
Los videos tenderán a ser> 16MB por lo que esta respuesta es probablemente razonable. Quizás debería mencionar esto sin embargo. – Chanoch