NPM命令删除mongo数据库,使用“echo”不起作用

我试图创build一个从我的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 

而数据库不会被丢弃。

为什么当我通过npm发出命令时,命令行不通?

这对我工作:

 "drop-db": "echo db.dropDatabase() | mongo musicappdb" 

没有单引号。

它不适用于双引号或单引号。 这是在Windows 10上。

嘿看到这篇文章也许可以帮助:

http://antrikshy.com/blog/run-mongodb-automatically-nodejs-project

只是testing:

'start mongo admin --eval "db.dropDatebase()" '