我正在使用數據庫MongoDB,由於資源消耗高(使用幾乎100GB的數據集),我需要縮小文檔的字段名稱(如「ALTER TABLE」 )。MongoDB - 更改文檔結構
有沒有一個容易/自動做到這一點?
我正在使用數據庫MongoDB,由於資源消耗高(使用幾乎100GB的數據集),我需要縮小文檔的字段名稱(如「ALTER TABLE」 )。MongoDB - 更改文檔結構
有沒有一個容易/自動做到這一點?
我這麼認爲!退房$rename
:http://www.mongodb.org/display/DOCS/Updating#Updating-%24rename
運行在你的數據與一幫$rename
個查詢設置update()
,我認爲會得到你想要的東西。
雖然您可以使用您的首選語言編寫腳本來完成此操作,但沒有內置的方法來執行此操作。另一種方法是更新您的應用程序代碼以重寫文檔,以便在訪問文檔時使用較短的字段名稱,這具有不需要停機或協調腳本和應用程序代碼的優勢。
請注意,即使縮小字段名稱,數據集的大小也會保持不變 - MongoDB將更新文檔,留下可用空間以「圍繞」文檔,因此您可能看不到縮小工作集大小。如果你期望你的文檔增長,這可能是有利的,因爲如果有足夠的可用空間來適應新文檔,MongoDB將在文檔增長時就地更新。
或者,您可以使用repairDatabase
命令,這會收縮您的數據集。 repairDatabase
可能會很慢,並且需要相當多的可用磁盤空間(它必須完整複製整個數據庫)。 repairDatabase
也會鎖定整個數據庫,因此您應該在計劃的維護時段內運行此操作。
最後,如果您使用的是版本1.9或更高版本,則可以使用compact
命令。 compact
比repairDatabase
需要更少的可用空間(它需要大約2GB的磁盤空間),並且一次只能在一個集合上運行。 compact
以與repairDatabase
相同的方式鎖定數據庫,並且在維護窗口期間應用與調度壓縮相同的警告。
這就是要找的東西。非常感謝你!帶有副本集的 –