Вы должны использовать getSiblingDB
, чтобы иметь возможность запускать команды на другом БД с --eval
. У меня работал следующий скрипт npm:
{
"name": "docker-npm-mongo",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"docker-start": "docker start some-mongo || docker run --name some-mongo -d mongo:latest",
"docker-create-db": "docker exec some-mongo mongo --eval db.getSiblingDB('mydb').user.insert({'name':'test'})",
"docker-drop-db": "docker exec some-mongo mongo --eval db.getSiblingDB('mydb').dropDatabase();"
},
"author": "",
"license": "ISC"
}
Используйте эти команды npm для создания базы данных
npm run docker-start
npm run docker-create-db
Затем вы можете проверить, существует ли ваша БД, выполнив
docker exec -ti some-mongo mongo
> show dbs
После того, как вы закончите, вы можете сбросить дб, выполнив
npm run docker-drop-db
Этой командой вы должны вручную удалить контейнер Docker. В качестве альтернативы, это также может быть частью вашего сценария npm в виде отдельной команды.
docker rm -f some-mongo