2 回答

TA貢獻1830條經驗 獲得超9個贊
GridFS 是一個不錯的選擇。你得到:
驅動程序自動創建索引,從而實現高效檢索
如果您的圖像超過 16 MB,則可以靈活處理
獨立的元數據和內容存儲
您也可以使用二進制類型并將圖像數據直接存儲在字段中。這會減少開銷,但是:
您應該仍然單獨存儲內容的元數據,或者對該解決方案與內容內聯在文檔中的解決方案進行基準測試(因為當您只需要元數據時,跳過內容字節可能會很慢)
您需要自己處理元數據

TA貢獻1820條經驗 獲得超9個贊
建議您將較?。ㄐ∮?6MB)的文件作為Buffer類型(即BSON二進制類型)的數據保存到MongoDB中。BSON 二進制類型用于存儲任何類型的二進制數據。BSON 二進制類型對應于 RDBMS BLOB 類型,它是 MongoDB 提供的兩種二進制對象存儲(另一種是 GridFS)的基礎。GridFS 是 MongoDB 中的一項規范,它可以通過將給定文件劃分為多個塊來在 MongoDB 中存儲大型文件(例如視頻、大型音頻文件和圖像),這反過來又使我們能夠僅獲取和加載文件的部分內容,如下所示必需的,而不是檢索整個文件。
如果您需要存儲的所有文件大小都小于 16 MB,建議您不要使用 GridFS。如果是這種情況,并且您仍然想利用 MongoDB,只需將文件直接存儲在普通的 MongoDB 文檔中即可。BSON 文檔的最大大小為 16 MB,因此如果您的所有文件都較小,那么使用 GridFS 會浪費資源。
但出于教育目的,如果您對小于 16MB 的文件使用 GridFS 并沒有什么問題,以上僅適用于生產級別的項目。
添加回答
舉報