【问题标题】:how do you run a mongo shell script with a deployed meteor app?您如何使用已部署的流星应用程序运行 mongo shell 脚本?
【发布时间】:2013-06-05 03:57:32
【问题描述】:

使用 mongo,您可以编写传递到 shell 的脚本,例如:

mongo myDB script.js

http://docs.mongodb.org/manual/tutorial/write-scripts-for-the-mongo-shell/

但要访问已部署的流星应用程序的 mongo shell,据说要执行以下操作:

meteor mongo myApp.meteor.com

我不能像这样使用这个语句传递脚本文件:

 meteor mongo myApp.meteor.com script.js

因为我部署的应用程序受密码保护,并且上面的语句将 script.js 输入到密码提示中。

那么问题是你会怎么做呢?

另外,如何在不使用流星的情况下连接到已部署的流星应用程序的 mongo shell?

【问题讨论】:

    标签: javascript mongodb meteor


    【解决方案1】:

    扩展了 Akshat 的答案。 meteor mongo --url 输出的 URI 字符串是一个 MongoDB Connection Stringmongo shell 本身不支持这种格式有点令人惊讶。这是reported as a bug;另见this Stack Overflow answer

    如果meteor mongo 有办法将未解析的参数直接传递给 mongo shell,那就太好了。按照一个常见的 Unix 习惯用法,它可能是这样的:

    meteor mongo myapp.meteor.com -- myscript.js --some-other-mongo-parameter
    

    但这不起作用(我提交了feature request)。

    我为所有 mongo 客户端 shell 命令编写了一个方便的包装器。你可以用 NPM 安装它:

    npm install -g mmongo
    

    如果你不使用 NPM,它只是一个文件放在你的 $PATH 的某个地方;见README at Github

    您现在可以这样做:

    mmongo myapp.meteor.com myscript.js 
    

    有关示例,另请参阅 this answer

    (以前这里有一个功能较少的 Ruby 脚本;请参阅 this Gist。)

    【讨论】:

    • 谢谢!对于遇到此问题的任何人来说绝对有用的信息和解决方案
    【解决方案2】:

    通过meteor mongo myapp.meteor.com --url 获取实例的登录详细信息。你会得到应该匹配的东西

    mongodb://username:password@host:port /databasename

    您可以使用它在您的计算机上通过mongo 登录。请注意,登录详细信息仅持续 1 分钟,此时您需要再次meteor mongo --url

    mongo host:port/databasename -u username -p password yourscript.js
    

    【讨论】:

      猜你喜欢
      • 2015-08-16
      • 2016-11-29
      • 2012-05-28
      • 2021-12-25
      • 2018-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-15
      相关资源
      最近更新 更多