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

标签 mongodb bash shell sh

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

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

当我通过./test.sh执行这个脚本时,与MongoDB的连接就建立了,但是下面的命令并没有被执行。

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

最佳答案

你也可以使用 --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 :

关于mongodb - 如何通过shell脚本执行mongo命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4837673/

相关文章:

linux - 尾部最近的文件

shell - 为 ubuntu 服务器上的所有用户执行命令的脚本

Linux 用父目录名替换文件名中的列

c - 用于执行后台进程的 Shell 项目

node.js - Mongoose - 如何按属性值查询子文档

mongodb - 将图像存储在 MongoDB 数据库中

bash - 在 bash shell 中对文件进行排序

bash - 通过 Bash 脚本远程执行和拒绝进程?

node.js - 使用 Meteor 从 Mongo 同步读取数据

python - 从 MongoDB 计算斜率一的差异