2016-04-29 89 views
3

存在一個包含數組的文檔,其大小超過16 MB。如何存儲此文檔以便能夠查詢此數組中的某些數據。如何處理數組大於16MB的MongoDB文檔

+1

只需更改您的數據模型。 16 MB文檔太大,您應該認爲您的設計不正確。 –

+1

您應該考慮將您的MongoDB文檔拆分爲多個集合。 – Saleem

回答

4

當您的文檔超過16MB的限制時,您很可能會將MongoDB的非規範化方法做得太過分,並且應該考慮爲每個數組條目創建另一個具有一個文檔的集合(或者對於每個敏感的數組分組項)。

另一種選擇是將內容視爲二進制數據並將其作爲文件存儲在GridFS中,但是您將無法對其內容執行任何有意義的查詢(僅限於您爲其單獨編寫的元數據) 。

16MB限制是硬編碼的。你不能通過配置來改變它。有a bugtracker ticket for that,它被關閉爲「不會修復」。但考慮到MongoDB是開源的,你可以隨時在源代碼中改變它。當你這樣做時,請記住許可條件。