2012-06-20 130 views

回答

14

使用gridfs是的。

Gridfs是一個存儲規範。它不是內置於數據庫中,而是內置於驅動程序中。

您可以更這裏找出:http://www.mongodb.org/display/DOCS/GridFS

這是正常的實現是你的大文件分解成較小的和那些aprts存儲在一個塊集合由您查詢您的文件fs.files收集掌握。

+0

+1幫助我提高答案和挖掘細節! – jsalonen

+1

如果您的二進制文件符合BSON大小限制(當前爲16MB),您還應該考慮將二進制對象直接存儲在單個文檔中。有一個關於[何時使用GridFS]的建議的wiki頁面(http://www.mongodb.org/display/DOCS/When+to+use+GridFS)。 – Stennie

+0

事實上,這是完全正確的,因爲它會導致不必要的查詢和空間分配。 – Sammaye

6

MongoDB是存儲類JSON文件(稱爲BSON)文檔數據庫。 BSON對象的最大大小爲16 megabytes,對於某些使用情況而言可能太少。

如果你想存儲任意大小的二進制數據,你可以使用GridFS的(http://www.mongodb.org/display/DOCS/GridFS+Specification)。 GridFS會自動將您的文檔(或任何二進制數據)拆分成多個BSON對象(usually 256k in size),因此您只需要擔心存儲和檢索完整文檔(無論大小如何)。

據我所知,貓鼬不支持GridFS的。但是,您可以通過its native driver's GridStore使用GridFS。只需運行npm install mongodb並開始黑客入侵!

+0

我知道 - 這就是爲什麼我說在標題中開玩笑 - 我說我應該繞過那個笑話。 MongoDB能否將Word或Excel分解爲BSON並在查詢時再次重新組合? – PinkElephantsOnParade

+1

MongoDB不是JSON而BSON不是JSON – Sammaye

+1

Msx doc大小如果實際上是16Mb – Sammaye

相關問題