簡體   English   中英

mongodb一次導入多個集合

[英]mongodb import multiple collections at once

我正在使用這個命令

mongoimport --db 數據庫名

導入我使用 mongoexport 導出的數據庫。 該數據庫在 mongoimport 文檔中有 100 多個集合,您需要指定集合名稱和 json 文件。 如何一次導入所有集合而不必為每個集合鍵入命令

如果轉儲文件在 .json 中,您可以使用腳本進行導入

ls *.json | sed 's/.metadata.json//' | while read col; do mongoimport -d db_name -c $col < $col.metadata.json; done

如果轉儲文件在 .json.gz 中,您可以使用腳本進行導入

ls *.gz | sed 's/.metadata.json.gz//' | while read col; do mongoimport -d db_name --gzip -c $col < $col.metadata.json.gz; done

根據文檔

2.6 新版功能:如果您不指定 --collection,mongoimport 將從輸入文件名中獲取集合名稱。 如果輸入文件有擴展名,MongoDB 會從集合名稱中省略文件的擴展名。

所以它似乎應該一次導入一個集合。 因此,除非您編寫一個 shell 腳本來執行此操作,否則我看不到任何方法。

mongodump 和 mongorestore 更適合進行完整的數據庫轉儲並立即恢復它,正如同一文檔的其他部分所說

警告

避免使用 mongoimport 和 mongoexport 進行完整實例生產備份。 它們不能可靠地保留所有豐富的 BSON 數據類型,因為 JSON 只能表示 BSON 支持的類型的一個子集。 使用 mongodump 和 mongorestore 如 MongoDB 備份方法中所述來實現此類功能。

很難找到有關導入多個集合的文檔,這非常令人驚訝。 當您搜索數據庫時,恢復數據庫並不總是一個直觀的關鍵字,但當您想從備份恢復數據庫時,這就是您想要做的。 如果您已經有使用mongodump導出的集合轉儲,則應該能夠使用mongorestore

這就是你真正需要運行的:

mongorestore --db db_name ./db_dumpfiles/

一個簡單的命令

mongorestore --db folder_name ./folder_name/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM