我试图创建一个从我的mongo实例中删除数据库的npm
命令。
当我将这行代码直接粘贴到我的shell中时,它可以工作,并提供以下输出:
> echo 'db.dropDatabase()' | mongo musicappdb
MongoDB shell version v3.4.10
connecting to: mongodb://127.0.0.1:27017/musicappdb
MongoDB server version: 3.4.10
{ "ok" : 1 }
bye
然而,当我从我的npm脚本运行它时,它被定义为这样
scripts: {
...
"drop-db": "echo 'db.dropDatabase()' | mongo musicappdb",
...
},
我得到了
> echo "db.dropDatabase()" | mongo musicappdb
MongoDB shell version v3.4.10
connecting to: mongodb://127.0.0.1:27017/musicappdb
MongoDB server version: 3.4.10
db.dropDatabase()
bye
数据库 NOT 被删除。
为什么我通过npm发出命令时行为不正常?
答案 0 :(得分:0)
http://antrikshy.com/blog/run-mongodb-automatically-nodejs-project
只是测试:
'start mongo admin --eval "db.dropDatebase()" '
答案 1 :(得分:0)
"drop-db": "echo 'db.dropDatabase()' | mongo myDB"
这对我有用
输出为
MongoDB shell version v4.0.9
connecting to: mongodb://127.0.0.1:27017/myDB?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("44d9deb8-6de1-49ff-8532-24cf2ae5247b") }
MongoDB server version: 4.0.9
{ "ok" : 1 }
bye
答案 2 :(得分:0)
如果有人在使用 Docker 容器:
docker exec -it mongodb_container sh -c "mongo db_name --eval 'db.dropDatabase()'"