2013-01-03 40 views
11

在此文件夾名爲my_backup我有一個的MongoDB數據庫轉儲所有我型號/收藏例如:恢復的MongoDB數據庫.bson和以.json文件

admins.bson 
admins.metadata.json 
categories.bson 
categories.metadata.json 
pages.bson 
pages.metadata.json 
. 
. 
. 

我有一個名爲ubuntu_development數據庫MongoDB的。我與rails 3 + mongoid

工作如何我可以導入/恢復所有型號/從文件夾my_backup收藏到我的數據庫ubuntu_development

非常感謝您!

+1

謝謝!這對我來說是一場噩夢...... – simPod

+1

感謝您提出這個問題。 – Devang

回答

26

從控制檯(在這種情況下)執行以下命令:

mongorestore my_backup --db ubuntu_development 
  1. mongodbrestore之後my_backup,這是數據庫的轉儲以前保存的文件夾名稱。
  2. --db ubuntu_development指定我們要恢復數據的數據庫名稱。
+1

另外,如果您還沒有創建目標數據庫,只需將恢復文件放在您想要的數據庫名稱的文件夾中,並執行'mongorestore '。這將創建數據庫'文件夾名稱',並把所有的日期在那裏:) – DanielSmedegaardBuus

+0

謝謝你的確切答案。 – Devang

-1

你必須通過CMD而不是蒙戈殼牌運行此mongorestore命令在下面的命令看一看......

運行CMD上(而不是在蒙戈外殼)這個命令

>path\to\mongorestore.exe -d dbname -c collection_name path\to\same\collection.bson 

這裏path\to\mongorestore.exe是mongodb bin文件夾內的mongorestore.exe路徑。數據庫名稱是數據庫的名稱。 collection_name是collection.bson的名稱。 path\to\same\collection.bson是該集合的路徑。

現在來自mongo shell,您可以驗證數據庫是否已創建(如果它不存在,則使用集合創建具有相同名稱的數據庫)。

2

要導入的文件.bson

mongorestore -d db_name -c collection_name path/file.bson 

櫃面僅適用於單個collection.Try這樣的:

mongorestore --drop -d db_name -c collection_name path/file.bson 

要導入以.json文件

mongoimport --db db_name --collection collection_name --file name.json