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[.collection]][?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. For some authentication mechanisms, only the username is specified and the password is not, in which case the ":" after the username is left off as well.
- {@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 following options are supported (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.
- {@code maxIdleTimeMS=ms}: Maximum idle time of a pooled connection. A connection that exceeds this limit will be closed
- {@code maxLifeTimeMS=ms}: Maximum life time of a pooled connection. A connection that exceeds this limit will be closed
Connection pool configuration:
- {@code maxPoolSize=n}: The maximum number of connections in the connection pool.
- {@code minPoolSize=n}: The minimum 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:
- {@code authMechanism=MONGO-CR|GSSAPI|PLAIN|MONGODB-X509}: The authentication mechanism to use if a credential was supplied. The default is unspecified, in which case the client will pick the most secure mechanism available based on the sever version. For the GSSAPI and MONGODB-X509 mechanisms, no password is accepted, only the username.
- {@code authSource=string}: The source of the authentication credentials. This is typically the database that the credentials have been created. The value defaults to the database specified in the path portion of the URI. If the database is specified in neither place, the default value is "admin". For GSSAPI, it's not necessary to specify a source.
- {@code gssapiServiceName=string}: This option only applies to the GSSAPI mechanism and is used to alter the service name..
Note: This class is a replacement for {@code MongoURI}, to be used with {@code MongoClient}. The main difference in behavior is that the default write concern is {@code WriteConcern.ACKNOWLEDGED}.
@mongodb.driver.manual reference/connection-string Connection String URI Format
@see MongoClientOptions for the default values for all options
@since 2.10.0