MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Archivia le immagini in Mongodb e servile con Nodejs

Sconsiglio vivamente di pubblicare immagini da MongoDB.

Sarebbe meglio salvarli su un filestore statico (S3) e magari mantenere il percorso in MongoDB.

Probabilmente utilizzeresti la codifica base64 per inserire il file in mongodb:http://www.greywyvern .com/code/php/binary2base64/ (o solo utilità di shell base64).

Se stai usando solo documenti regolari, il costo delle prestazioni è relativamente basso (a patto che la memorizzazione nella cache sia buona). Se stai utilizzando un database misto in cui hai GridFS e documenti regolari, avrai bisogno di molta RAM sui tuoi server:le query GridFS verranno eseguite in modo completamente diverso dalle query sui documenti.

La conversione dell'immagine potrebbe funzionare in questo modo:

var base64Data = imagefile.replace(/^data:image\/png;base64,/,""),
var dataBuffer = new Buffer(base64Data, 'base64');

// below line won't actually work but it's something along the lines of what you want:

db.foo.insert({magic: 123, etc... img: dataBuffer.toString()})