我正在使用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")
如果有人知道怎么做,我会感激一些帮助。
提前致谢。
答案 0 :(得分:2)
您需要知道创建集合时不需要,当您开始使用它时,Mongo将创建它。另一方面,如果你想在数据库中创建一些灯具,假设集合已经存在。
答案 1 :(得分:0)
我认为你有两种可能性:
将--shell
替换为--eval
(请参阅http://docs.mongodb.org/master/tutorial/write-scripts-for-the-mongo-shell/#eval-option)
mongo --shell db.createCollection("first")
将您的步骤序列放入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