小编典典

如何通过shell脚本执行mongo命令?

all

我想mongo在 shell 脚本中执行命令,例如在脚本中test.sh

#!/bin/sh
mongo myDbName
db.mycollection.findOne()
show collections

当我通过 执行此脚本时./test.sh,将建立与 MongoDB 的连接,但不执行以下命令。

如何通过shell脚本执行其他命令test.sh


阅读 212

收藏
2022-03-16

共1个答案

小编典典

--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 :
2022-03-16