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

запазване на снимка в mongodb

Не е задължително да имате нужда от GridFS за съхраняване на файлове в MongoDB, но със сигурност го прави по-приятно изживяване, защото се справя с разделянето и записването на двоичните данни, като същевременно прави достъпни и метаданните. След това можете да съхраните идентификатор във вашия User документ към снимката на аватара.

Освен това, можете също да съхранявате двоични данни директно във вашите документи, въпреки че в кода си не запазвате данните. Просто го отваряте с PIL.Image , но след това не прави нищо с него.

Ако приемем, че използвате pymongo за вашия драйвер, мисля, че това, което можете да направите, е просто да обвиете двоичните данни в Binary контейнер и след това го съхранявайте. Това не е тествано от мен, но предполагам, че трябва да работи:

from pymongo.binary import Binary

binary_avatar = Binary(avat)

user={
    ...
    "avatar":avatar,
    "avatar_file": binary_avatar
    ...
}

Това се казва... просто улеснете себе си и използвайте GridFS. За това е предназначен.

Ако трябваше да използвате GridFS, може да изглежда така:

from gridfs import GridFS

avat_ctype = self.request.files['avatar'][0]["content_type"]

fs = GridFS(db)
avatar_id = fs.put(avat, content_type=avat_ctype, filename=nomfich)

user={
    ...
    "avatar_name":avatar,
    "avatar_id": avatar_id
    ...
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoParseError:опциите useCreateIndex, useFindAndModify не се поддържат

  2. Как да изтрия база данни с Mongoose?

  3. Как да ускоря MongoDB Inserts/sec?

  4. Изберете вложени полета в mongo db

  5. Препратки към документ Mongoose с връзка „едно към много“.