将MongoDB与Docker一起使用时如何创建新的数据库和集合?

时间:2017-06-10 12:38:26

标签: mongodb docker docker-compose

我对Dockers很新,现在练习使用docker-compose初始化新的MongoDB容器。 我已经了解到将环境变量插入Dockerfile会为我创建一个管理员用户并设置密码。我还发现我可以通过docker传递一个js文件来处理一些命令并为我创建我想要使用的结构。

我尝试创建新的JS文件并将一些Mongo指令写入其中,但每次运行时都会遇到此错误:

mongo-1 | 2017-06-10T12:28:08.153+0000 E QUERY [thread1] SyntaxError: missing ; before statement @/docker-entrypoint-initdb.d/mongo_setup.js:1:4

我的JS看起来像这样:

use admin;
db.auth('admin', 'somepassword');
use newDB;
db.createCollection('newCol');
newCol = db.getCollection('newCol');
newCol.insert({'hello':'world'});

我做错了什么?如何设置" newDB"和" newCol"当我运行码头工具?如何自动将一些索引添加到newCol集合中?

一点注意:我将不得不创建一些DB和集合,并且无法通过环境变量启动所有这些。

提前致谢!

1 个答案:

答案 0 :(得分:0)

要初始化数据库,您可以使用以下脚本编写脚本:

mongo test --eval "load(youscript.js)"

scritps将位于 / data / db 文件夹