How to Read if (Std::cin >> )
This document describes the URI formats for defining connections between applications and MongoDB instances in the official MongoDB Drivers. For a list of drivers and links to driver documentation, see Drivers.
You can specify the MongoDB connection cord using either:
- the Standard Connection String Format or
- the DNS Seed List Connexion Format.
This section describes the standard format of the MongoDB connection URI used to connect to a MongoDB deployment: standalone, replica set, or a sharded cluster.
The standard URI connection scheme has the form:
mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]]
For more than examples, see Examples.
The standard URI connection string includes the following components:
Component | Description |
---|---|
| A required prefix to place that this is a cord in the standard connection format. |
| Optional. Authentication credentials. If specified, the client volition endeavor to authenticate the user to the Note If the username or password includes the post-obit characters: : / ? # [ ] @ those characters must exist converted using percent encoding. See likewise |
| The host (and optional port number) where the If the port number is not specified, the default port |
| Optional. The authentication database to use if the connexion string includes If both |
| Optional. A query string that specifies connexion specific options as If the connectedness cord does non specify a database/ you must specify a slash ( |
New in version 3.6.
In addition to the standard connection format, MongoDB supports a DNS-constructed seed list. Using DNS to construct the available servers list allows more flexibility of deployment and the ability to change the servers in rotation without reconfiguring clients.
In society to leverage the DNS seed list, use a connectedness string prefix of mongodb+srv
rather than the standard mongodb
. The +srv
indicates to the client that the hostname that follows corresponds to a DNS SRV record. The commuter or mongosh
will so query the DNS for the tape to decide which hosts are running the mongod
instances.
Use of the +srv
connection string modifier automatically sets the tls
(or the equivalent ssl
) option to true
for the connection. You can override this behavior by explicitly setting the tls
(or the equivalent ssl
) option to simulated
with tls=fake
(or ssl=false
) in the query string.
The following instance shows a typical connexion string for a DNS seed listing connection cord:
mongodb+srv://server.example.com/
The corresponding DNS configuration might resemble:
Record TTL Form Priority Weight Port Target _mongodb._tcp.server.example.com. 86400 IN SRV 0 5 27317 mongodb1.instance.com. _mongodb._tcp.server.example.com. 86400 IN SRV 0 5 27017 mongodb2.example.com.
When a client connects to a fellow member of the seed list, the client retrieves a list of replica set members it tin can connect to. Clients frequently apply DNS aliases in their seed lists which means the host may return a server listing that differs from the original seed listing. If this happens, clients will use the hostnames provided by the replica set rather than the hostnames listed in the seed list to ensure that replica set members tin can be reached via the hostnames in the resulting replica set up config.
The hostnames returned in SRV records must share the aforementioned parent domain (in this case, example.com
) equally the given hostname. If the parent domains and hostname do non match, you will not be able to connect.
Like the standard connectedness string, the DNS seed list connexion string supports specifying options equally a query string. With a DNS seed list connection cord, y'all can also specify the post-obit options via a TXT record:
-
replicaSet
-
authSource
You may only specify one TXT record per mongod
case. If multiple TXT records appear in the DNS and/or if the TXT record contains an option other than replicaSet
or authSource
, the client will return an error.
The TXT tape for the server.example.com
DNS entry would resemble:
Record TTL Grade Text server.example.com. 86400 IN TXT "replicaSet=mySet&authSource=authDB"
Taken together, the DNS SRV records and the options specified in the TXT record resolve to the post-obit standard format connection string:
mongodb://mongodb1.example.com:27317,mongodb2.instance.com:27017/?replicaSet=mySet&authSource=authDB
You can override the options specified in a TXT tape past passing the option in the query cord. In the following example, the query string has provided an override for the authSource
selection configured in the TXT record of the DNS entry above.
mongodb+srv://server.case.com/?connectTimeoutMS=300000&authSource=aDifferentAuthDB
Given the override for the authSource
, the equivalent connexion string in the standard format would be:
mongodb://mongodb1.example.com:27317,mongodb2.example.com:27017/?connectTimeoutMS=300000&replicaSet=mySet&authSource=aDifferentAuthDB
The mongodb+srv
option will fail if there is no available DNS with records that stand for to the hostname identified in the connection string. In addition, utilise of the +srv
connection string modifier automatically sets the tls
(or the equivalent ssl
) option to true
for the connection. You can override this behavior past explicitly setting the tls
(or the equivalent ssl
) option to simulated
with tls=fake
(or ssl=imitation
) in the query string.
This department lists all connection options.
Connection options are pairs in the following form: proper name=value
.
- The pick
name
is case insensitive when using a driver. - The option
proper noun
is case insensitive when usingmongosh
, or the version iv.2 or later legacymongo
shell. - The option
name
is case sensitive when using a version iv.0 and earlier legacymongo
shell. - The
value
is ever case sensitive.
Divide options with the ampersand (i.e. &
) character name1=value1&name2=value2
. In the following example, a connection includes the replicaSet
and connectTimeoutMS
options:
mongodb://db1.example.net:27017,db2.example.internet:2500/?replicaSet=examination&connectTimeoutMS=300000
Semi-colon separator for connexion string arguments
To provide backwards compatibility, drivers currently accept semi-colons (i.e. ;
) as option separators.
The post-obit connexion string to a replica fix named myRepl
with members running on the specified hosts:
mongodb://db0.case.com:27017,db1.example.com:27017,db2.case.com:27017/?replicaSet=myRepl
Connection Option | Description |
---|---|
| Specifies the name of the replica set, if the When connecting to a replica set, provide a seed listing of the replica set member(s) to the |
The following connection string to a replica gear up includes tls=true
option (available starting in MongoDB 4.2):
mongodb://db0.example.com,db1.example.com,db2.example.com/?replicaSet=myRepl&tls=true
Alternatively, you tin can besides utilize the equivalent ssl=true
option:
mongodb://db0.case.com,db1.example.com,db2.example.com/?replicaSet=myRepl&ssl=true
Connection Choice | Clarification |
---|---|
| Enables or disables TLS/SSL for the connectedness: Note The If the New in version 4.2. |
| A boolean to enable or disables TLS/SSL for the connection: Note The If the |
| Specifies the location of a local The customer presents this file to the Changed in version 4.four: This option is not supported by all drivers. Refer to the Drivers documentation. This connexion string selection is non available for the New in version 4.two. |
| Specifies the password to de-crypt the This option is not supported by all drivers. Refer to the Drivers documentation. This connection string choice is not bachelor for the New in version 4.two. |
| Specifies the location of a local This option is not supported past all drivers. Refer to the Drivers documentation. This connection string choice is not available for the New in version 4.2. |
| Bypasses validation of the certificates presented by the Set to This pick is not supported by all drivers. Refer to the Drivers documentation. This connectedness string option is not bachelor for the Alarm Disabling document validation creates a vulnerability. New in version iv.two. |
| Disables hostname validation of the certificate presented past the Gear up to This option is not supported past all drivers. Refer to the Drivers documentation. This connexion string option is non available for the Alert Disabling certificate validation creates a vulnerability. New in version iv.two. |
| Disables various certificate validations. Ready to This connection cord option is non available for the Warning Disabling certificate validation creates a vulnerability. New in version 4.2. |
Connection Option | Clarification |
---|---|
| The time in milliseconds to try a connexion earlier timing out. The default is never to timeout, though dissimilar drivers might vary. Run into the driver documentation. |
| The time in milliseconds to try a send or receive on a socket before the try times out. The default is never to timeout, though different drivers might vary. Run across the driver documentation. |
Connexion Option | Clarification | ||||||||
---|---|---|---|---|---|---|---|---|---|
| Comma-delimited string of compressors to enable network compression for advice between this customer and a You can specify the following compressors: If you specify multiple compressors, so the social club in which you listing the compressors thing as well as the communication initiator. For example, if the customer specifies the following network compressors Of import Messages are compressed when both parties enable network pinch. Otherwise, messages between the parties are uncompressed. If the parties do not share at least i mutual compressor, messages betwixt the parties are uncompressed. | ||||||||
| An integer that specifies the pinch level if using zlib for You can specify an integer value ranging from Value Notes Default pinch level, usually level No compression Increasing level of compression but at the price of speed, with: Non supported by |
Most drivers implement some kind of connection pool handling. Some drivers do not support connection pools. Come across your driver documentation for more information on the connection pooling implementation. These options permit applications to configure the connection pool when connecting to the MongoDB deployment.
Connection Option | Clarification |
---|---|
| The maximum number of connections in the connectedness pool. The default value is |
| The minimum number of connections in the connectedness pool. The default value is Annotation The |
| The maximum number of milliseconds that a connection can remain idle in the pool before beingness removed and closed. This pick is not supported past all drivers. |
| A number that the driver multiplies the This option is not supported past all drivers. |
| The maximum time in milliseconds that a thread can await for a connection to become available. For default values, see the commuter documentation. This option is not supported by all drivers. |
Write concern describes the level of acquittance requested from MongoDB. The write concern option is supported by the:
- MongoDB drivers
-
mongosh
-
mongofiles
-
mongoimport
-
mongorestore
You can specify the write business organization both in the connection string and equally a parameter to methods like insert
or update
. If the write business organisation is specified in both places, the method parameter overrides the connection-cord setting.
The following connexion string to a replica set specifies "majority"
write concern and a 5 2d timeout using the wtimeoutMS
write business parameter:
mongodb://db0.example.com,db1.example.com,db2.example.com/?replicaSet=myRepl&w=majority&wtimeoutMS=5000
Connexion Option | Description |
---|---|
| Corresponds to the write concern You lot tin can specify a For details, see |
| Corresponds to the write concern When |
| Corresponds to the write concern If yous set up If you ready |
For more data, run into Write Concern.
New in version iii.2: For the WiredTiger storage engine, MongoDB 3.2 introduces the readConcern option for replica sets and replica set shards.
Read Concern allows clients to choose a level of isolation for their reads from replica sets.
The following connection cord to a replica fix specifies readConcernLevel=bulk
:
mongodb://db0.example.com,db1.example.com,db2.case.com/?replicaSet=myRepl&readConcernLevel=majority
For more data, run across Read Business organization.
Read preferences describe the behavior of read operations with regards to replica sets. These parameters permit yous to specify read preferences on a per-connection ground in the connection string.
For instance:
-
The following connection string to a replica set specifies
secondary
read preference mode and amaxStalenessSeconds
value of 120 seconds:mongodb://db0.example.com,db1.example.com,db2.example.com/?replicaSet=myRepl&readPreference=secondary&maxStalenessSeconds=120
-
The following connection string to a sharded cluster specifies
secondary
read preference manner and amaxStalenessSeconds
value of 120 seconds:mongodb://mongos1.example.com,mongos2.example.com/?readPreference=secondary&maxStalenessSeconds=120
-
The following connection string to a sharded cluster specifies
secondary
read preference mode besides as threereadPreferenceTags
:mongodb://mongos1.example.com,mongos2.example.com/?readPreference=secondary&readPreferenceTags=dc:ny,rack:r1&readPreferenceTags=dc:ny&readPreferenceTags=
Social club matters when using multiple readPreferenceTags
. The readPreferenceTags
are tried in lodge until a lucifer is found. Once constitute, that specification is used to find all eligible matching members and any remaining readPreferenceTags
are ignored. For details, see Gild of Tag Matching.
Connection Selection | Description |
---|---|
| Specifies the read preferences for this connexion. Possible values are: Multi-document transactions that contain read operations must use read preference This connection string option is not available for the |
| Specifies, in seconds, how stale a secondary can be earlier the client stops using it for read operations. For details, see Read Preference By default, in that location is no maximum staleness and clients will not consider a secondary's lag when choosing where to direct a read operation. The minimum Important To use New in version iii.4. |
| Specifies the tags document as a comma-separated list of colon-separated key-value pairs. For example, To specify a list of tag documents, utilise multiple Gild matters when using multiple This connection cord pick is not available for the |
For more information, run across Read preferences.
The following connection string to a replica set up specifies the authSource
to the admin
database. That is, the user credentials are authenticated against the admin
database.
mongodb://myDBReader:D1fficultP%40ssw0rd@mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/?replicaSet=myRepl&authSource=admin
If the username or password includes the post-obit characters:
those characters must be converted using pct encoding.
Connexion Option | Description |
---|---|
| Specify the database proper noun associated with the user's credentials. If The MongoDB will ignore |
| Specify the authentication mechanism that MongoDB will use to authenticate the connection. Possible values include: MongoDB 4.0 removes back up for the Only MongoDB Enterprise To employ To utilize When using Note If the AWS access central ID, cloak-and-dagger access key, or session token include the following characters: : / ? # [ ] @ those characters must be converted using pct encoding. Alternatively, if the AWS access key ID, secret access key, or session token are divers on your platform using their corresponding AWS IAM environs variables See Connect to an Atlas Cluster for case usage of the See Authentication for more than information near the authentication system in MongoDB. Also consider Apply x.509 Certificates to Authenticate Clients for more information on x509 authentication. |
| Specify properties for the specified Possible key-value pairs are: Set the Kerberos service proper name when connecting to Kerberized MongoDB instances. This value must match the service proper name attack MongoDB instances to which you lot are connecting. Only valid when using the GSSAPI authentication mechanism. |
| Set the Kerberos service name when connecting to Kerberized MongoDB instances. This value must match the service name set on MongoDB instances to which you are connecting. |
MongoDB provides the following options to configure how MongoDB drivers and mongos
instances select a server to which to straight read or write operations.
Connectedness Option | Description |
---|---|
| The size (in milliseconds) of the latency window for selecting amid multiple suitable MongoDB instances. Default: fifteen milliseconds. All drivers utilise |
| Specifies how long (in milliseconds) to block for server selection earlier throwing an exception. Default: 30,000 milliseconds. |
| Unmarried-threaded drivers just. When Multi-threaded drivers and |
| Default: |
Connexion Option | Clarification |
---|---|
| Specify a custom app name. The app proper noun appears in The New in version 4.0. |
| Enables retryable reads. Possible values are: Official MongoDB drivers uniform with MongoDB Server 4.2 and later default to New in version four.2. |
| Enable retryable writes. Possible values are: Official MongoDB 4.ii+ compatible drivers default to Official MongoDB 4.0 and 3.6-compatible drivers default to MongoDB drivers retry transaction commit and abort operations regardless of the value of New in version 3.six. |
| Possible values are: For the default, see the Drivers documentation for your commuter. Note Not all drivers support the |
The following provide example URI strings for common connection targets.
The following connects to a database server running locally on the default port:
The following connects and logs in to the admin
database every bit user sysop
with the password moon
:
mongodb://sysop:moon@localhost
The following connects and logs in to the records
database equally user sysop
with the password moon
:
mongodb://sysop:moon@localhost/records
Use a URL encoded connection cord when connecting to a UNIX domain socket.
The post-obit connects to a UNIX domain socket with file path /tmp/mongodb-27017.sock
:
mongodb://%2Ftmp%2Fmongodb-27017.sock
Non all drivers support UNIX domain sockets. For information on your driver, run into the Drivers documentation.
The following connects to a replica gear up with two members, one on db1.instance.net
and the other on db2.example.cyberspace
:
For a replica set, specify the hostname(s) of the mongod
case(s) as listed in the replica set configuration.
mongodb://db1.example.net,db2.example.com/?replicaSet=exam
The following connects to a replica fix with three members running on localhost
on ports 27017
, 27018
, and 27019
:
For a replica set, specify the hostname(s) of the mongod
instance(south) equally listed in the replica set configuration.
mongodb://localhost,localhost:27018,localhost:27019/?replicaSet=examination
The post-obit connects to a replica ready with three members and distributes reads to the secondaries:
For a replica gear up, specify the hostname(s) of the mongod
instance(s) as listed in the replica set configuration.
mongodb://example1.com,example2.com,example3.com/?replicaSet=exam&readPreference=secondary
The following connects to a replica set with write concern configured to wait for replication to succeed across a majority of the data-bearing voting members, with a two-second timeout.
For a replica set, specify the hostname(due south) of the mongod
example(south) equally listed in the replica set configuration.
mongodb://example1.com,example2.com,example3.com/?replicaSet=test&w=majority&wtimeoutMS=2000
The following connects to a sharded cluster with three mongos
instances:
mongodb://router1.example.com:27017,router2.example2.com:27017,router3.example3.com:27017/
New in version 4.4.
The post-obit connects to a MongoDB Atlas cluster which has been configured to back up authentication via AWS IAM credentials:
mongosh 'mongodb+srv://<aws access key id>:<aws hugger-mugger access central>@cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS'
Connecting to Atlas using AWS IAM credentials in this style uses the MONGODB-AWS
authentication mechanism
and the $external
authSource
, as shown in this example.
If using an AWS session token, as well, provide it with the AWS_SESSION_TOKEN
authMechanismProperties
value, as follows:
mongosh 'mongodb+srv://<aws access key id>:<aws hush-hush access key>@cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS&authMechanismProperties=AWS_SESSION_TOKEN:<aws session token>'
If the AWS admission key ID, the hugger-mugger admission fundamental, or the session token include the following characters:
those characters must be converted using per centum encoding.
Y'all may also gear up these credentials on your platform using standard AWS IAM environment variables. mongosh
checks for the following surround variables when you utilise the MONGODB-AWS
authentication mechanism
:
-
AWS_ACCESS_KEY_ID
-
AWS_SECRET_ACCESS_KEY
-
AWS_SESSION_TOKEN
If prepare, these credentials do non demand to be specified in the connection cord.
The post-obit example sets these environment variables in the bash
trounce:
export AWS_ACCESS_KEY_ID='<aws access central id>' consign AWS_SECRET_ACCESS_KEY='<aws secret admission primal>' export AWS_SESSION_TOKEN='<aws session token>'
Syntax for setting environment variables in other shells will exist different. Consult the documentation for your platform for more information.
Yous can verify that these environment variables have been gear up with the post-obit control:
Once gear up, the following case connects to a MongoDB Atlas cluster using these environment variables:
mongosh 'mongodb+srv://cluster0.case.com/testdb?authSource=$external&authMechanism=MONGODB-AWS'
Source: https://docs.mongodb.com/manual/reference/connection-string/
0 Response to "How to Read if (Std::cin >> )"
Post a Comment