Provided by: libmongoc-doc_1.3.1-1_all bug

NAME

       mongoc_uri_t  -  mongoc_uri_t  provides  an  abstraction  on top of the MongoDB connection URI format. It
       provides standardized parsing as well as convenience methods for extracting useful  information  such  as
       replica hosts or authorization information.

SYNOPSIS

       typedef struct _mongoc_uri_t mongoc_uri_t;

DESCRIPTION

       mongoc_uri_t  provides  an  abstraction  on  top  of  the  MongoDB  connection  URI  format.  It provides
       standardized parsing as well as convenience methods for extracting useful  information  such  as  replica
       hosts or authorization information.

       See Connection String URI Reference on the MongoDB website for more information.

FORMAT

       mongodb://                                   <1>
          [username:password@]                      <2>
          host1                                     <3>
          [:port1]                                  <4>
          [,host2[:port2],...[,hostN[:portN]]]      <5>
          [/[database]                              <6>
          [?options]]                               <7>

       \[bu]
         mongodb is the specifier of the MongoDB protocol.

       \[bu]
         An optional username and password.

       \[bu]
         The only required part of the uri.  This specifies either a hostname, IP address or UNIX domain socket.

       \[bu]
         An optional port number.  Defaults to :27017.

       \[bu]
         Extra  optional  hosts  and  ports.   You would specify multiple hosts, for example, for connections to
         replica sets.

       \[bu]
         The name of the database to authenticate if the connection string includes authentication  credentials.
         If  /database  is not specified and the connection string includes credentials, defaults to the 'admin'
         database.

       \[bu]
         Connection specific options.

REPLICA SET EXAMPLE

       To describe a connection to a replica set named 'test' with the following mongod hosts:

       \[bu]
         db1.example.com on port 27017

       \[bu]
         db2.example.com on port 2500

         You would use the connection string that resembles the following.

         mongodb://db1.example.com,db2.example.com:2500/?replicaSet=test

CONNECTION OPTIONS

       ssl    {true|false},  indicating  if  SSL  must  be  used.  (See  also   mongoc_client_set_ssl_opts   and
              mongoc_client_pool_set_ssl_opts \&.)

       connectTimeoutMS
              A  timeout  in  milliseconds  to  attempt  a connection before timing out. This setting applies to
              server discovery and monitoring connections as well as to connections for application  operations.
              The default is 10 seconds.

       socketTimeoutMS
              The  time  in milliseconds to attempt to send or receive on a socket before the attempt times out.
              The default is 5 minutes.

       NOTE
              Setting any of the *TimeoutMS options above to 0 will be interpreted as "use the default value"

SERVER DISCOVERY, MONITORING, AND SELECTION OPTIONS

       NOTE
              Clients in a mongoc_client_pool_t share a topology scanner that runs on a background  thread.  The
              thread  wakes  every  heartbeatFrequencyMS  (default  10  seconds)  to scan all MongoDB servers in
              parallel. Whenever an application operation requires a server that is not known‐‐for  example,  if
              there  is no known primary and your application attempts an insert‐‐the thread rescans all servers
              every half‐second. In this situation  the  pooled  client  waits  up  to  serverSelectionTimeoutMS
              (default  30  seconds) for the thread to find a server suitable for the operation, then returns an
              error with domain MONGOC_ERROR_SERVER_SELECTION \&.

              Technically, the total time an operation may wait while a pooled  client  scans  the  topology  is
              controlled  both  by  serverSelectionTimeoutMS and connectTimeoutMS \&. The longest wait occurs if
              the last scan begins just at the end of the selection timeout, and a slow or down server  requires
              the full connection timeout before the client gives up.

              A  non‐pooled  client  is  single‐threaded.  Every  heartbeatFrequencyMS  ,  it  blocks  the  next
              application operation while it does a parallel scan. This scan takes as long as  needed  to  check
              the  slowest  server:  roughly connectTimeoutMS \&. Therefore the default heartbeatFrequencyMS for
              single‐threaded clients is greater than for pooled clients: 60 seconds.

              By default, single‐threaded (non‐pooled) clients scan only  once  when  an  operation  requires  a
              server  that  is  not  known.  If  you attempt an insert and there is no known primary, the client
              checks all servers once trying to  find  it,  then  succeeds  or  returns  an  error  with  domain
              MONGOC_ERROR_SERVER_SELECTION  \&.  But  if you set serverSelectionTryOnce to "false", the single‐
              threaded client loops, checking all servers every half‐second, until serverSelectionTimeoutMS \&.

              The total time an operation may wait  for  a  single‐threaded  client  to  scan  the  topology  is
              determined   by   connectTimeoutMS   in   the   try‐once  case,  or  serverSelectionTimeoutMS  and
              connectTimeoutMS if serverSelectionTryOnce is set "false".

       heartbeatFrequencyMS
              The interval between server monitoring checks. Defaults to 10 seconds in  pooled  (multi‐threaded)
              mode, 60 seconds in non‐pooled mode (single‐threaded).

       serverSelectionTimeoutMS
              A  timeout in milliseconds to block for server selection before throwing an exception. The default
              is 30 seconds.

       serverSelectionTryOnce
              If "true", the driver scans the topology exactly once after server selection  fails,  then  either
              selects  a  server  or returns an error. If it is false, then the driver repeatedly searches for a
              suitable server for up to serverSelectionTimeoutMS milliseconds (pausing  a  half  second  between
              attempts). The default for serverSelectionTryOnce is "false" for pooled clients, otherwise "true".
              Pooled  clients ignore serverSelectionTryOnce; they signal the thread to rescan the topology every
              half‐second until serverSelectionTimeoutMS expires.

       socketCheckIntervalMS
              Only applies to single threaded clients. If a socket has not  been  used  within  this  time,  its
              connection is checked with a quick "isMaster" call before it is used again. Defaults to 5 seconds.

       NOTE
              Setting any of the *TimeoutMS options above to 0 will be interpreted as "use the default value"

CONNECTION POOL OPTIONS

       maxPoolSize
              The maximum number of connections in the pool. The default value is 100.

       minPoolSize
              The  minimum  number  of  connections in the connection pool. Default value is 0. These are lazily
              created.

       maxIdleTimeMS
              Not implemented.

       waitQueueMultiple
              Not implemented.

       waitQueueTimeoutMS
              Not implemented.

WRITE CONCERN OPTIONS

       w

       0      The driver will not acknowledge write operations but will pass or handle any  network  and  socket
              errors  that  it  receives to the client. If you disable write concern but enable the getLastError
              command’s w option, w overrides the w option.

       1      Provides basic acknowledgment of write operations. By specifying 1, you require that a  standalone
              mongod  instance,  or  the primary for replica sets, acknowledge all write operations. For drivers
              released after the default write concern change, this is the default write concern setting.

       majority
              For replica sets, if you specify the special majority value to w  option,  write  operations  will
              only  return successfully after a majority of the configured replica set members have acknowledged
              the write operation.

       n      For replica sets, if you specify a number n greater than 1, operations  with  this  write  concern
              return  only after n members of the set have acknowledged the write. If you set n to a number that
              is greater than the number of available set members or members that hold data, MongoDB will  wait,
              potentially indefinitely, for these members to become available.

       tags   For replica sets, you can specify a tag set to require that all members of the set that have these
              tags configured return confirmation of the write operation.

       wtimeoutMS
              The  time in milliseconds to wait for replication to succeed, as specified in the w option, before
              timing out. When wtimeoutMS is 0, write operations will never time out.

       journal
              Controls whether write operations will wait until the mongod acknowledges the write operations and
              commits the data to the on disk journal.

       true   Enables journal commit acknowledgment write concern. Equivalent  to  specifying  the  getLastError
              command with the j option enabled.

       false  Does not require that mongod commit write operations to the journal before acknowledging the write
              operation. This is the default option for the journal parameter.

READ CONCERN OPTIONS

       readConcernLevel
              The  level  of isolation for read operations. If the level is left unspecified, the server default
              will be used. See the readConcern in the MongoDB Manual for details.

READ PREFERENCE OPTIONS

       readPreference
              Specifies the replica set read preference for this connection. This setting overrides any  slaveOk
              value. The read preference values are the following:

       \[bu]
         primary

       \[bu]
         primaryPreferred

       \[bu]
         secondary

       \[bu]
         secondaryPreferred

       \[bu]
         nearest

       readPreferenceTags
              Specifies a tag set as a comma‐seperated list of colon‐separted key‐value pairs.

COLOPHON

       This     page     is     part     of    MongoDB    C    Driver.     Please    report    any    bugs    at
       https://jira.mongodb.org/browse/CDRIVER.

MongoDB C Driver                                   2016‐01‐18                                    MONGOC_URI_T(3)