【问题标题】:Passing variable from shell script to mongo javascript fails将变量从 shell 脚本传递到 mongo javascript 失败
【发布时间】:2020-11-04 14:32:52
【问题描述】:

我有一个代码,我正在使用 shell 脚本命令运行 mongo javascript:

mongo --eval "var lower='30000';" <servername>:27017 < mongo.js;

但不是运行 mongo.js,它只是连接到服务器并中断。 日志: MongoDB shell 版本 v3.6.3 连接到:mongodb://:27017/test MongoDB服务器版本:2.2.1 警告:shell 和服务器版本不匹配

这个警告不是问题,但它没有计算 mongo.js 脚本。你能说出我的命令有什么问题吗?

我正在使用上面编写的命令从 shell 脚本调用这个 .js 脚本,有什么方法可以将多个值传递给这些变量吗?

【问题讨论】:

    标签: javascript mongodb shell


    【解决方案1】:

    --eval 让 mongo shell 评估指定的 javascript 并忽略标准输入。

    提供您希望作为--eval 参数或文件运行的所有代码,但不要同时使用两者。

    要将变量传递给 shell 脚本,请创建一个新脚本:

    echo "var lower='30000';" >run.js
    cat mongo.js >>run.js
    mongo <servername>:27017 < run.js;
    

    【讨论】:

    • 那么如果我想将变量传递给 mongo.js 脚本,我该怎么做呢?
    • 在脚本中定义它们。
    • 我从一个 shell 脚本调用 mongo.js 脚本到那个 shell 脚本,传递的值,它们也可以变化。因此我们不能硬编码这些值。那么在这种情况下我该怎么办?
    • 将这些要求添加到问题中。
    • 我加了,大家有什么建议吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-11
    • 2015-05-01
    • 2016-10-29
    • 1970-01-01
    相关资源
    最近更新 更多