我是Dockers的新手,現在正在使用docker-compose初始化新的MongoDB容器。 我知道將環境變量插入Dockerfile會爲我創建一個管理員用戶並設置一個密碼。我還發現我可以通過docker一個js文件來處理一些命令併爲我創建我想要使用的結構。如何在使用MongoDB和Docker時創建新的數據庫和集合?
我試圖創建新的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'});
什麼我做錯了嗎?我在運行docker時如何設置「newDB」和「newCol」?我怎樣才能自動添加一些索引到newCol集合中?
一張小紙條:我將不得不創造一些DB和集合,並通過環境變量初始化所有的人是不可能的..提前
謝謝!
的'use'聲明實際上並沒有腳本命令,而是互動的。使用諸如'db.getSiblingDB('admin');'等同於'show collections'之類的語句。請參閱文檔中的[腳本編寫MongoDB](https://docs.mongodb.com/manual/tutorial/write-scripts-for-the-mongo-shell/) –