2013-10-21 20 views
0

剛剛開始在mongodb上構建用於文件保存和檢索的應用程序,並發現它具有用於此目的的名爲GridFS的標準規範。但不幸的是,我無法在C/C++中找到任何啓​​動例子。如果有人知道任何有關的事情,那麼請給我的方向。MongoDB中用於GridFS實現的C/C++示例

編輯:

,我讀了用於存儲文件超過16MB的大小時,GridFS的使用,所以怎麼樣的文件大小小於16MB。我不能得到任何關於它的信息?對於更小的尺寸,我是否需要使用其他進程或相同的GridF?

由於

回答

0

GridFS的可以通過類mongo::GridFS訪問。 API非常自我解釋。

或者,您可以將文件的二進制數據作爲BSON BinData類型嵌入普通文檔中。 mongo::BSONObjBuilder有方法appendBinData向文檔添加二進制內容字段。

GridFS存在的原因是每個文檔的上限爲16MB。如果要存儲大於16MB的數據,則需要將其分割爲多個文檔。 GridFS是一個自動處理的抽象,但它也可以用於較小的文件。

一般而言,您不應該將兩種技術混合使用相同的內容,因爲它只會讓事情變得更加複雜,而且收益甚微。當你可以保證你的數據沒有接近16MB時,使用嵌入。當你偶爾有大於16MB的內容時,你甚至應該使用GridFS來處理比這個小的文件。

+0

請記住,大文檔必須一次反序列化,讀取16MB需要相當多的時間。因此,GridFS的默認塊大小僅爲250kB,因此您可以更高效地傳輸數據。 – mnemosyn

+0

你們可以幫我解決這個問題嗎... http://stackoverflow.com/questions/19629753/replication-on-mongodb-using-visual-studio –