我想mongo在 shell 脚本中执行命令,例如在脚本中test.sh:
mongo
test.sh
#!/bin/sh mongo myDbName db.mycollection.findOne() show collections
当我通过 执行此脚本时./test.sh,将建立与 MongoDB 的连接,但不执行以下命令。
./test.sh
如何通过shell脚本执行其他命令test.sh?
--eval如果命令只是单个命令,您还可以使用标志评估命令。
--eval
mongo --eval "printjson(db.serverStatus())"
请注意: 如果您使用的是 Mongo 运算符,以 $ 符号开头,您需要将 eval 参数括在单引号中,以防止 shell 将运算符作为环境变量进行评估:
mongo --eval 'db.mycollection.update({"name":"foo"},{$set:{"this":"that"}});' myDbName
否则,您可能会看到如下内容:
mongo --eval "db.test.update({\"name\":\"foo\"},{$set:{\"this\":\"that\"}});" > E QUERY SyntaxError: Unexpected token :