How do you connect to a replicaset from a MongoDB shell?

Richard Warburton picture Richard Warburton · Dec 17, 2012 · Viewed 88.9k times · Source

If I'm writing an application which connects to mongodb then I can provide a seed list for a replicaset, and the driver will direct me to the master node, where I can run write commands.

How do I specify the seed list for a commandline mongo shell in order to conenct to a replicaset.

Answer

Gianfranco P. picture Gianfranco P. · Feb 23, 2015

To connect to a replica set Primary use the mongo shell --host option:

mongo --host replicaSetName/host1[:porthost1],host2[:porthost1],host3[:porthost3],etc

For example:

$ mongo --host rs1/john.local:27019,john.local:27018
MongoDB shell version: v3.4.9
connecting to: mongodb://john.local:27019,john.local:27018/?replicaSet=rs1
2017-10-12T14:13:03.094+0000 I NETWORK  [thread1] Starting new replica set monitor for rs1/john.local:27019,john.local:27018
2017-10-12T14:13:03.096+0000 I NETWORK  [thread1] Successfully connected to john.local:27019 (1 connections now open to john.local:27019 with a 5 second timeout)
2017-10-12T14:13:03.096+0000 I NETWORK  [thread1] Successfully connected to john.local:27018 (1 connections now open to john.local:27018 with a 5 second timeout)
rs1:PRIMARY> db
test
rs1:PRIMARY>

Note: From versions 3.4.2 to 3.4.10 there was a bug (SERVER-28072) which prevented specifying the db after when using --host or --port.