如何使用MONGOLAB_URI连接Mongo Shell到数据库?

4

在Heroku上,连接数据库所需的所有内容都存储在MONGOLAB_URI变量中。但它主要由Mongo驱动程序使用,而不是人类。

$ heroku config
=== app Config Vars
LANG:                     en_US.UTF-8
MONGOLAB_URI:             mongodb://heroku_app123456:2fsf445D@ds039880.mongolab.com:39880/heroku_app123456

有没有一种快速的方法,只使用Mongo shell连接到数据库?

2个回答

4

我不确定是否可以在mongo shell中完成这个操作,但是通过终端你只需要运行mongo [mongodb uri]命令即可。


2
这在2.63.0.5中都不起作用。但是,现在是最佳答案 :) - A.D.

0

我在man mongo中没有看到任何选项来执行此操作。

因此,有一种(众多)可能的方法是使用此AWK单行命令:

gawk '/MONGOLAB_URI/ { print gensub( /mongodb:\/\/([[:print:]]+):([[:print:]]+)@(.*)/, "-u \\1 -p \\2  \\3","g",$2)}'

使用方法:

$ mongo $(heroku config | gawk '/MONGOLAB_URI/ { print gensub( /mongodb:\/\/([[:print:]]+):([[:print:]]+)@(.*)/, "-u \\1 -p \\2  \\3","g",$2)}')
MongoDB shell version: 3.0.5
connecting to: ds039880.mongolab.com:39880/heroku_app123456
rs-ds039880:PRIMARY> 

这只是一个简单的数据库设置,不包括副本集等内容。对于更复杂的URI,请使用一些驱动程序。


另一种可能的方法是打开mongolab插件的管理界面,那里应该有一个准备好的"连接"字符串。无法确认是否包含密码/用户名对。
$ heroku addons:open mongolab

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接