How to connect mongodb clients to local Meteor Mon

2019-01-30 02:45发布

问题:

How can I connect Robomongo (or any other mongodb client) to the mongodb instance that is created by my local Meteor application?

回答1:

Ensure Meteor is running on localhost. Open a terminal window and run meteor command. It will start running on localhost:3000 if you have not changed to port.

While it is running, open a separate terminal window and run meteor mongo command. This will open up a MongoDB shell and tell you what port it is connecting to This is normally 3001 as of version 0.7.1.1 or 3002 if earlier. It will say something like 127.0.0.1:3001/meteor

Go to Robomongo (or your favorite mongodb client software) and create a new connection, making sure to change the connection address to localhost and the given the port number. No need to additionally define /meteor if your client does not insist on a default database.

Also as pointed out in https://stackoverflow.com/a/22023284/1064151 some drivers may need specific line endings, delimeters or other character flow. For example, ObjCMongoDB a C based driver wants the url to be 127.0.0.1:3001/ with that extra / at the end, or it won't work. So make sure you check the documentation for your driver/client.



回答2:

Easiest way to get the current configuration details is to use the following command

meteor mongo -U

This will give you the connection string



回答3:

From terminal run following command

meteor mongo -U

That will show you the local host IP address and in which port you application is running. Now run the Robomongo and configure as following two field as you got by running the previous command



回答4:

This worked for me,Before connecting make sure meteor is running. I am using Robomongo to connect. Create new connection and add Address as : localhost; port as: 3001



回答5:

I'm too using Robomongo and before the latest update V0.7.1,i used port 3002 to connect,as @Serkan Durusoy suggest's for the latest update it is working for 3001 port



回答6:

I'm using ObjCMongoDB, a C based mongoDB driver. With the new update instead of using the previous 127.0.0.1:3002 to connect to my localhost running meteor's mongodb, I now need to use 127.0.0.1:3001/ with the collection name still being meteor.collection. The important change is the port from :3002 to :3001/. Remember the /, it is critical for the connection.



回答7:

@imal365 answer is perfect. Just to add my insight on it:

I realized that the default Meteor Mongo port number is the port number of the application with 1 added to it (as of version 0.7.1.1). In my case, I was running Meteor on port 1337 with the command meteor --port 1337 and my Meteor Mongo port was 1338.



回答8:

Use SSH tunneling by the following command :

ssh -L 3001:localhost:3001 user-name@host

It forwards connections from your local port 3001 to localhost:3001 on your server. Now we can simply connect to our database.

Create a Robomongo connection on your localhost and hit Test (Out of two checks, Authentication may fail) :