ongodb.org/display/DOCS/Connections">URI which can be used to create a MongoClient instance. The URI describes the hosts to be used and options.
The format of the URI is:
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
- {@code mongodb://} is a required prefix to identify that this is a string in the standard connection format.
- {@code username:password@} are optional. If given, the driver will attempt to login to a database afterconnecting to a database server.
- {@code host1} is the only required part of the URI. It identifies a server address to connect to.
- {@code :portX} is optional and defaults to :27017 if not provided.
- {@code /database} is the name of the database to login to and thus is only relevant if the{@code username:password@} syntax is used. If not specified the "admin" database will be used by default.
- {@code ?options} are connection options. Note that if {@code database} is absent there is still a {@code /}required between the last host and the {@code ?} introducing the options. Options are name=value pairs and the pairsare separated by "&". For backwards compatibility, ";" is accepted as a separator in addition to "&", but should be considered as deprecated.
The Java driver supports the following options (case insensitive):
Replica set configuration:
- {@code replicaSet=name}: Implies that the hosts given are a seed list, and the driver will attempt to find all members of the set.
Connection Configuration:
- {@code ssl=true|false}: Whether to connect using SSL.
- {@code connectTimeoutMS=ms}: How long a connection can take to be opened before timing out.
- {@code socketTimeoutMS=ms}: How long a send or receive on a socket can take before timing out.
Connection pool configuration:
- {@code maxPoolSize=n}: The maximum number of connections in the connection pool.
- {@code waitQueueMultiple=n} : this multiplier, multiplied with the maxPoolSize setting, gives the maximum number ofthreads that may be waiting for a connection to become available from the pool. All further threads will get an exception right away.
- {@code waitQueueTimeoutMS=ms}: The maximum wait time in milliseconds that a thread may wait for a connection to become available.
Write concern configuration:
- {@code safe=true|false}
- {@code true}: the driver sends a getLastError command after every update to ensure that the update succeeded (see also {@code w} and {@code wtimeoutMS}).
- {@code false}: the driver does not send a getLastError command after every update.
- {@code w=wValue}
- The driver adds { w : wValue } to the getLastError command. Implies {@code safe=true}.
- wValue is typically a number, but can be any string in order to allow for specifications like {@code "majority"}
- {@code wtimeoutMS=ms}
- The driver adds { wtimeout : ms } to the getlasterror command. Implies {@code safe=true}.
- Used in combination with {@code w}
Read preference configuration:
- {@code slaveOk=true|false}: Whether a driver connected to a replica set will send reads to slaves/secondaries.
- {@code readPreference=enum}: The read preference for this connection. If set, it overrides any slaveOk value.
- Enumerated values:
- {@code primary}
- {@code primaryPreferred}
- {@code secondary}
- {@code secondaryPreferred}
- {@code nearest}
- {@code readPreferenceTags=string}. A representation of a tag set as a comma-separated list of colon-separated key-value pairs, e.g. {@code "dc:ny,rack:1}". Spaces are stripped from beginning and end of all keys and values. To specify a list of tag sets, using multiple readPreferenceTags, e.g. {@code readPreferenceTags=dc:ny,rack:1;readPreferenceTags=dc:ny;readPreferenceTags=}
- Note the empty value for the last one, which means match any secondary as a last resort.
- Order matters when using multiple readPreferenceTags.
Authentication configuration: