MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Przechowuj obrazy w Mongodb, serwuj je za pomocą Nodejs

Zdecydowanie odradzałbym udostępnianie obrazów z MongoDB.

Byłoby lepiej przechowywać je w statycznym magazynie plików (S3) i być może zachować ścieżkę w MongoDB.

Prawdopodobnie użyłbyś kodowania base64, aby umieścić plik w mongodb:http://www.greywyvern .com/code/php/binary2base64/ (lub po prostu narzędzie powłoki base64).

Jeśli używasz tylko zwykłych dokumentów, koszt wydajności jest stosunkowo niski (o ile buforowanie jest dobre). Jeśli używasz mieszanej bazy danych, w której masz GridFS i zwykłe dokumenty, będziesz potrzebować dużo pamięci RAM na swoim serwerze (serwerach) -- zapytania GridFS będą działały zupełnie inaczej niż zapytania dotyczące dokumentów.

Konwersja obrazu może wyglądać tak:

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. Zainicjuj dane na zadokowanym mongo

  2. Gdzie MongoDB przechowuje swoje dokumenty?

  3. Pobierz pojedynczą właściwość z dokumentu

  4. Jak importować i indeksować dane mongodb w solr 4

  5. Czy wynik zapytania Mongoose jest tylko do odczytu?