Question

If I have a mongo database URL of the following format

mongodb://someUsername:somePassword@some.server.com:27017/some_collection

Is there an easy way to give this to mongorestore without having to do

mongorestore -u someUsername -p somePassword -h some.server.com:27017 -db some_collection /path/to/dump

The reason I ask is because meteor mongo --url gives back a url of that form (and it looks like a standardized url format) but it expires in one minute. Because the password and host can be pretty long, it's hit or miss whether I can copy the parameters over (correctly) in one minute, and usually requires several tries.

Does something like the following exist?

mongorestore --url blah_blah /path/to/dump

See also https://stackoverflow.com/a/15865565/586086

Was it helpful?

Solution

I didn't find a way to pass the URL as a parameter but I wrote a one line command that converts the url into mongorestore parameters:

CMD=`meteor mongo -U autocomplete.meteor.com | tail -1 | sed 's_mongodb://\([a-z0-9\-]*\):\([a-f0-9\-]*\)@\(.*\)/\(.*\)_mongorestore -u \1 -p \2 -h \3 -d \4_'`
$CMD /path/to/dump

OTHER TIPS

Update since five years ago:

Beginning with version 3.4.6, mongorestore accepts a URI argument:

https://docs.mongodb.com/manual/reference/program/mongorestore/#options

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top