sql >> Databasteknik >  >> NoSQL >> MongoDB

Lagra bilder i Mongodb serverar dem med Nodejs

Jag skulle starkt avråda från att visa bilder från MongoDB.

Det vore bättre att lagra dem i en statisk fillagring (S3) och kanske behålla sökvägen i MongoDB.

Du skulle förmodligen använda base64-kodning för att lägga in filen i mongodb:http://www.greywyvern .com/code/php/binary2base64/ (eller bara base64-skalverktyget).

Om du bara använder vanliga dokument är prestandakostnaden relativt låg (så länge cachningen är bra). Om du använder en blandad databas där du har GridFS och vanliga dokument kommer du att behöva mycket RAM på din(a) server(ar) -- GridFS-frågorna kommer att köras helt annorlunda än dokumentfrågorna.

Att konvertera bilden kan fungera så här:

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. Enheter att använda för maxdistance och MongoDB?

  2. Hitta ett mongodb-dokument med en partiell _id-sträng

  3. Kommunikation mellan två Docker-behållare på macOS 10.12

  4. mongodb print json utan blanksteg, dvs unpretty json