MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

lưu ảnh vào mongodb

Bạn không nhất thiết phải cần GridFS để lưu trữ tệp trong MongoDB, nhưng nó chắc chắn làm cho nó có trải nghiệm tốt hơn, vì nó xử lý việc phân tách và lưu dữ liệu nhị phân, đồng thời cung cấp siêu dữ liệu. Sau đó, bạn có thể lưu trữ một ID trong User của mình tài liệu vào ảnh đại diện.

Ngoài ra, bạn cũng có thể lưu trữ dữ liệu nhị phân trực tiếp trong tài liệu của mình, mặc dù trong mã của bạn, bạn không lưu dữ liệu. Bạn chỉ cần mở nó bằng PIL.Image , nhưng sau đó không làm gì với nó.

Giả sử bạn đang sử dụng pymongo đối với trình điều khiển của bạn, tôi nghĩ những gì bạn có thể làm là chỉ bọc dữ liệu nhị phân trong một Binary thùng chứa, và sau đó lưu trữ nó. Điều này chưa được tôi kiểm tra, nhưng tôi cho rằng nó sẽ hoạt động:

from pymongo.binary import Binary

binary_avatar = Binary(avat)

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

Bây giờ điều đó đang được nói ... chỉ cần làm cho nó dễ dàng hơn với chính bạn và sử dụng GridFS. Đó là ý nghĩa của nó.

Nếu bạn đang sử dụng GridFS, nó có thể trông giống như sau:

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. Làm thế nào để sắp xếp các tài liệu con trong trường mảng?

  2. MongoDB $ strLenCP

  3. Nhiều số lượng với một truy vấn duy nhất trong mongodb

  4. Mongo trường A lớn hơn trường B

  5. Cập nhật bộ sưu tập sao băng với id truyền thống