Mongo的Bash脚本,用于创建数据库和集合。

8

我正在使用vagrant,并尝试创建一些bash语句来初始化我的vagrant本地机器,就像服务器配置一样:

我正在安装Mongo,一切都很好,直到我需要创建数据库和一些集合:我想这样做:

mongo 
use redirect
db.createCollection("first")
db.createCollection("second")
db.createCollection("third")
exit

我可以从终端连接到机器并使用ssh,但我希望将这个过程自动化。我尝试按照上述代码运行它,但它没有起作用。或者可以尝试:

mongo --shell use redirect
mongo --shell db.createCollection("first")

如果有人知道如何做到这一点,我将非常感谢您的帮助。
提前致谢。
4个回答

2

您需要知道的是,在使用Mongo时,不需要创建集合,Mongo会自动创建。另一方面,如果您想向数据库中添加一些固定数据,请假设集合已经存在。


2

你可以将要使用的数据库作为mongo命令的参数来指定。如果它尚不存在,它将为您创建。这可能解决了你的问题。请参见manpage中的选项。

你还可以使用--eval选项进一步指定要评估的mongo Java表达式。因此,以下代码将在例如bash中执行:

$ mongo redirect --eval 'db.createCollection("first"); db.createCollection("second"); db.createCollection("third")'
MongoDB shell version v3.4.9
connecting to: mongodb://127.0.0.1:27017/redirect
MongoDB server version: 3.4.9
{ "ok" : 1 }
$

1

0
echo 'db.createCollection("first")' | mongo redirect

3
你能否提供一个解释来支持你的代码? - lucasreta

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接