- MongoEngine 教程
- MongoEngine - 首頁
- MongoEngine - MongoDB
- MongoEngine - MongoDB Compass
- MongoEngine - 物件文件對映器
- MongoEngine - 安裝
- MongoEngine - 連線到 MongoDB 資料庫
- MongoEngine - 文件類
- MongoEngine - 動態架構
- MongoEngine - 欄位
- MongoEngine - 新增/刪除文件
- MongoEngine - 查詢資料庫
- MongoEngine - 過濾器
- MongoEngine - 查詢運算子
- MongoEngine - QuerySet 方法
- MongoEngine - 排序
- MongoEngine - 自定義查詢集
- MongoEngine - 索引
- MongoEngine - 聚合
- MongoEngine - 高階查詢
- MongoEngine - 文件繼承
- MongoEngine - 原子更新
- MongoEngine - Javascript
- MongoEngine - 檔案系統
- MongoEngine - 訊號
- MongoEngine - 文字搜尋
- MongoEngine - 擴充套件
- MongoEngine 有用資源
- MongoEngine - 快速指南
- MongoEngine - 有用資源
- MongoEngine - 討論
MongoEngine - 檔案系統
在 MongoDB 中,大於 16 MB 的檔案按照 GridFS 規範儲存。一個檔案被分成多個塊,每個塊的預設大小為 255KB。大塊可能大到所需的大小。GridFS 使用兩個集合,一個用於塊,另一個用於元資料。
如果希望訪問檔案而無需將其全部載入記憶體,可以使用 GridFS 來儲存任何檔案。
MongoEngine API 透過FileField物件支援 GridFS。透過此物件,可以插入和檢索資料。FileField 物件的put()方法有助於將檔案作為文件的一部分進行編寫。
from mongoengine import *
con=connect('newdb')
class lang (Document):
name=StringField()
developer=StringField()
logo=FileField()
l1=lang()
l1.name='Python'
l1.developer='Van Rossum'
f=open('pylogo.png','rb')
l1.logo.put(f,content_type='image/png')
l1.save()
可以使用 Python 的檔案物件透過 read() 方法來檢索 FileField 內容。
logo = l1.logo.read()
還有一個delete()方法用於刪除儲存的檔案。
l1 = lang.objects(name='Python').first() l1.logo.delete() l1.save()
請注意,FileField 只儲存一個單獨 GridFS 集合中的檔案 ID。因此,delete() 方法不會實際刪除檔案。
replace()方法有助於用另一個檔案替換檔案引用。
l1 = lang.objects(name='Python').first()
f=open('newlogo.png','rb')
l1.logo.replace(f,content_type='image/png')
l1.save()
廣告