Mongo bash脚本用于创建Db和集合

时间:2015-09-16 10:50:44

标签: bash mongodb shell ubuntu vagrant

我正在使用vagrant并尝试创建一些bash句子来初始化我的流浪本地计算机,如服务器配置:

我正在安装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 个答案:

答案 0 :(得分:2)

您需要知道创建集合时不需要,当您开始使用它时,Mongo将创建它。另一方面,如果你想在数据库中创建一些灯具,假设集合已经存在。

答案 1 :(得分:0)

我认为你有两种可能性:

  1. --shell替换为--eval(请参阅http://docs.mongodb.org/master/tutorial/write-scripts-for-the-mongo-shell/#eval-option

    mongo --shell db.createCollection("first")
    
  2. 将您的步骤序列放入js文件并运行(参见http://docs.mongodb.org/master/tutorial/write-scripts-for-the-mongo-shell/#execute-a-javascript-file

    mongo localhost:27017/test myjsfile.js
    

答案 2 :(得分:0)

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

您可以使用--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 }
$

答案 3 :(得分:0)

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