使用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?
答案 0 :(得分:8)
通过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
答案 1 :(得分:2)
对Akshat的答案进行了扩展。 meteor mongo --url
发出的URI字符串是MongoDB Connection String。 mongo 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。)