通过命令行脚本进行MongoDB管理

时间:2011-10-06 11:49:08

标签: mongodb

在mysql中我可以通过运行如下命令来管理我的数据库(主要目标是通过顺序对脚本应用更改来自动构建数据库):

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一样,但是我想运行mongo db命令而不是运行SQL命令。

这样的事情可能吗?

2 个答案:

答案 0 :(得分:3)

首先,在mongo中,即时创建对象(当您将第一个对象插入数据库的第一个集合中时),因此您可能不需要创建数据库和集合。

然后,您可以使用2种不同的工具用对象填充数据库:mongoimport和mongo

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

mongo -d myDatabase --eval bob.js

可以执行您想要的任何JavaScript。这是通过锁定db来完成的,因此不要在用于请求的实例上使用它。

第二种方法是在其他响应中使用mongoimport。如果您有一个对象列表而没有其他类型的命令,这将更容易。请注意,对象是插入的(未插入),因此重复项不应失败。

答案 1 :(得分:1)

我猜import工具和批处理文件非常适合您的需求。

  

例如,如果您导入的文件如下所示:

     

{“_ id”:{“$ oid”:“4e5bb37258200ed9aabc5d65”},“name”:“Bob”,   “年龄”:28,“地址”:“123假街”}

     

运行

     

mongoimport -d test -c foo importfile.json

要删除数据库,您可以停止mongodb(也可以通过批处理文件),删除数据库文件,然后重新启动数据库。