MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Speichern Sie Bilder in Mongodb und bedienen Sie sie mit Nodejs

Ich rate dringend davon ab, Bilder aus MongoDB bereitzustellen.

Es wäre besser, sie in einem statischen Dateispeicher (S3) zu speichern und den Pfad möglicherweise in MongoDB zu behalten.

Sie würden wahrscheinlich base64-Kodierung verwenden, um die Datei in mongodb abzulegen:http://www.greywyvern .com/code/php/binary2base64/ (oder einfach nur das base64-Shell-Dienstprogramm).

Wenn Sie nur normale Dokumente verwenden, sind die Leistungskosten relativ gering (solange das Caching gut ist). Wenn Sie eine gemischte Datenbank verwenden, in der Sie GridFS und normale Dokumente haben, benötigen Sie viel RAM auf Ihrem/Ihren Server(n) – die GridFS-Abfragen laufen völlig anders als die Dokumentabfragen.

Das Konvertieren des Bildes könnte folgendermaßen funktionieren:

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