2011-10-06 15 views
1

在MySQL我可以管理我的數據庫(主要目標是一個通過順序地施加變化將其與腳本具有的數據庫的自動構建)通過運行這樣的命令:MongoDB的管理通過命令行腳本

mysql -u root my_database < script_1.sql 
mysql -u root my_database < script_2.sql 

凡script_1.sql看起來是這樣的:

DROP DATABASE IF EXISTS my_database; 
CRATE DATABASE my_database; 

而且script_2.sql是這樣的:

INSERT INTO ... 

好吧,我想對mongo一樣,但不是運行SQL命令,我想運行mongo db命令。

是這樣的可能嗎?

回答

3

首先,在mongo中,實時創建對象(當您在數據庫的第一個集合中插入第一個對象時),因此可能不需要創建數據庫和集合。

然後你可以使用2個不同的工具,使用對象來填充數據庫:mongoimport和蒙戈

mongo -d myDatabase --eval "db.aCollection.insert({_id : ..,....,....})" 

mongo -d myDatabase --eval bob.js 

可以執行任何JavaScript你想要的。這是通過對db進行鎖定來完成的,所以不要在用於請求的實例上使用它。

第二種方法是使用mongoimport作爲其他響應的說法。如果你有一個對象列表並且沒有其他類型的命令,這會更容易。請注意,對象被插入(未插入),因此重複項不應失敗。

+0

看來現在'-d'標誌是不需要的。你可以使用'mongo myDatabase --eval ...'。 – n0pe

1

我想import工具和批處理文件很適合您的需求。

例如,如果您導入,看起來像這樣的文件:

{ 「_id」:{ 「$ OID」: 「4e5bb37258200ed9aabc5d65」}, 「名」: 「鮑勃」, 「時代「:28, 」地址「: 」123假街道「}

通過運行

mongoimport -d測試-c FOO importfile.json

要刪除數據庫ÿ您可以停止mongodb(也可以通過批處理文件),刪除數據庫文件,然後再次啓動數據庫。

相關問題