sql >> Databáze >  >> NoSQL >> MongoDB

Ukládejte obrázky v Mongodb a podávejte je pomocí Nodejs

Důrazně nedoporučuji zobrazovat obrázky z MongoDB.

Bylo by lepší je uložit na statické úložiště souborů (S3) a možná ponechat cestu v MongoDB.

K umístění souboru do mongodb byste pravděpodobně použili kódování base64:http://www.greywyvern .com/code/php/binary2base64/ (nebo jen nástroj prostředí base64).

Pokud pouze používáte běžné dokumenty, pak jsou náklady na výkon relativně nízké (pokud je ukládání do mezipaměti dobré). Pokud používáte smíšenou databázi, kde máte GridFS a běžné dokumenty, budete na svém serveru (serverech) potřebovat hodně paměti RAM – dotazy GridFS poběží úplně jinak než dotazy na dokumenty.

Převod obrázku může fungovat takto:

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. Jak reaktivně agregovat mongodb v meteoru

  2. Mongo:Najděte položky, které nemají určité pole

  3. Faye nebo Redis Pubsub

  4. Vložte prvek do vnořených polí v MongoDB