sql >> Database >  >> NoSQL >> MongoDB

Sla afbeeldingen op in Mongodb en serveer ze met Nodejs

Ik raad het ten zeerste af om afbeeldingen van MongoDB weer te geven.

Het zou beter zijn om ze op te slaan in een statische filestore (S3) en misschien het pad in MongoDB te behouden.

Je zou waarschijnlijk base64-codering gebruiken om het bestand in mongodb te plaatsen:http://www.greywyvern .com/code/php/binary2base64/ (of gewoon base64 shell-hulpprogramma).

Als u alleen gewone documenten gebruikt, zijn de prestatiekosten relatief laag (zolang de cache goed is). Als je een gemengde database gebruikt waarin je GridFS en reguliere documenten hebt, heb je veel RAM nodig op je server(s) -- de GridFS-query's zullen compleet anders worden uitgevoerd dan de documentquery's.

Het converteren van de afbeelding zou als volgt kunnen werken:

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()})


  1. MongoDB C# Driver geeft geen verbindingen vrij dan fouten

  2. MongoDB-query om alleen ingesloten document te retourneren

  3. mongoengine +django hoe het aantal items met dezelfde inhoud te tellen

  4. Transacties in MongoDB