MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Съхранявайте изображения в Mongodb, обслужвайте ги с Nodejs

Бих силно препоръчал да не се показват изображения от MongoDB.

Би било по-добре да ги съхранявате в статично файлово хранилище (S3) и може би да запазите пътя в MongoDB.

Вероятно ще използвате base64 кодиране, за да поставите файла в mongodb:http://www.greywyvern .com/code/php/binary2base64/ (или просто base64 shell помощна програма).

Ако просто използвате обикновени документи, тогава разходите за производителност са относително ниски (стига кеширането да е добро). Ако използвате смесена база данни, където имате GridFS и обикновени документи, ще имате нужда от много RAM на вашия сървър(и) -- заявките за GridFS ще се изпълняват напълно различно от заявките за документи.

Преобразуването на изображението може да работи по следния начин:

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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да проектираме високодостъпни среди за бази данни с отворен код

  2. Как да нормализираме фирмените имена

  3. Намиране на първите N записа от масива

  4. Трябва ли да използвам Java String Pool за синхронизация въз основа на уникален клиентски идентификатор?

  5. Активиране на компресиране на данни в MongoDB 3.0