bionic (3) mongoc_uri_t.3.gz

Provided by: libmongoc-doc_1.9.2+dfsg-1build1_all bug

NAME

       mongoc_uri_t - mongoc_uri_t

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[+srv]://                             <1>
             [username:password@]                      <2>
             host1                                     <3>
             [:port1]                                  <4>
             [,host2[:port2],...[,hostN[:portN]]]      <5>
             [/[database]                              <6>
             [?options]]                               <7>

       1. "mongodb"  is  the  specifier of the MongoDB protocol. Use "mongodb+srv" with a single service name in
          place of "host1" to specify the initial list of servers with an SRV record.

       2. An optional username and password.

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

       4. An optional port number.  Defaults to :27017.

       5. Extra  optional  hosts  and  ports.  You would specify multiple hosts, for example, for connections to
          replica sets.

       6. 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.

       7. Connection specific options.

       NOTE:
          Option names are case-insensitive

       The MongoDB C Driver exposes constants for each supported connection  option.  These  constants  make  it
       easier to discover connection options, but their string values can be used as well.

       For example, the following calls are equal.

          uri = mongoc_uri_new ("mongodb://localhost/?" MONGOC_URI_APPNAME "=applicationName");
          uri = mongoc_uri_new ("mongodb://localhost/?appname=applicationName");
          uri = mongoc_uri_new ("mongodb://localhost/?appName=applicationName");

REPLICA SET EXAMPLE

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

       • db1.example.com on port 27017db2.example.com on port 2500

       You would use a connection string that resembles the following.

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

SRV EXAMPLE

       If  you  have  configured an SRV record with a name like "_mongodb._tcp.server.example.com" whose records
       are a list of one or more MongoDB server hostnames, use a connection string like this:

          uri = mongoc_uri_new ("mongodb+srv://server.example.com/?replicaSet=rs&appName=applicationName");

       The driver prefixes the service name with "_mongodb._tcp.", then performs a DNS SRV query to resolve  the
       service name to one or more hostnames. If this query succeeds, the driver performs a DNS TXT query on the
       service name (without the "_mongodb._tcp" prefix) for additional URI options configured as TXT records.

       On Unix, the MongoDB C Driver relies on libresolv to look  up  SRV  and  TXT  records.  If  libresolv  is
       unavailable, then using a "mongodb+srv" URI will cause an error. If your libresolv lacks res_nsearch then
       the driver will fall back to res_search, which is not thread-safe.

CONNECTION OPTIONS

             ┌────────────────────────────────┬──────────────────────┬───────────────────────────────────┐
             │Constant                        │ Key                  │ Description                       │
             ├────────────────────────────────┼──────────────────────┼───────────────────────────────────┤
             │MONGOC_URI_RETRYWRITES          │ retrywrites          │ If "true" and the server  is      │
             │                                │                      │ a  MongoDB  3.6+ replica set      │
             │                                │                      │ or  sharded   cluster,   the      │
             │                                │                      │ driver   safely   retries  a      │
             │                                │                      │ write that failed due  to  a      │
             │                                │                      │ network error or replica set      │
             │                                │                      │ failover.   Only    inserts,      │
             │                                │                      │ updates of single documents,      │
             │                                │                      │ or   deletes    of    single      │
             │                                │                      │ documents are retried.            │
             ├────────────────────────────────┼──────────────────────┼───────────────────────────────────┤
             │MONGOC_URI_APPNAME              │ appname              │ The client application name.      │
             │                                │                      │ This  value   is   used   by      │
             │                                │                      │ MongoDB    when    it   logs      │
             │                                │                      │ connection  information  and      │
             │                                │                      │ profile information, such as      │
             │                                │                      │ slow queries.                     │
             ├────────────────────────────────┼──────────────────────┼───────────────────────────────────┤
             │MONGOC_URI_SSL                  │ ssl                  │ {true|false}, indicating  if      │
             │                                │                      │ SSL  must be used. (See also      │
             │                                │                      │ mongoc_client_set_ssl_opts        │
             │                                │                      │ and                               │
             │                                │                      │ mongoc_client_pool_set_ssl_opts.) │
             ├────────────────────────────────┼──────────────────────┼───────────────────────────────────┤
             │MONGOC_URI_COMPRESSORS          │ compressors          │ Comma     separated    list    of │
             │                                │                      │ compressors, if any,  to  use  to │
             │                                │                      │ compress    the   wire   protocol │
             │                                │                      │ messages.  Snappy  are  Zlib  are │
             │                                │                      │ optional build time dependencies, │
             │                                │                      │ and  enable  the   "snappy"   and │
             │                                │                      │ "zlib"    values    respectively. │
             │                                │                      │ Defaults     to     empty     (no │
             │                                │                      │ compressors).                     │
             ├────────────────────────────────┼──────────────────────┼───────────────────────────────────┤
             │MONGOC_URI_CONNECTTIMEOUTMS     │ connecttimeoutms     │ This   setting   applies  to  new │
             │                                │                      │ server connections.  It  is  also │
             │                                │                      │ used  as  the  socket timeout for │
             │                                │                      │ server discovery  and  monitoring │
             │                                │                      │ operations. The default is 10,000 │
             │                                │                      │ ms (10 seconds).                  │
             └────────────────────────────────┴──────────────────────┴───────────────────────────────────┘

             │MONGOC_URI_SOCKETTIMEOUTMS      │ sockettimeoutms      │ The  time  in   milliseconds   to │
             │                                │                      │ attempt  to  send or receive on a │
             │                                │                      │ socket before the  attempt  times │
             │                                │                      │ out.  The  default  is 300,000 (5 │
             │                                │                      │ minutes).                         │
             ├────────────────────────────────┼──────────────────────┼───────────────────────────────────┤
             │MONGOC_URI_REPLICASET           │ replicaset           │ The name of the Replica Set  that │
             │                                │                      │ the driver should connect to.     │
             ├────────────────────────────────┼──────────────────────┼───────────────────────────────────┤
             │MONGOC_URI_ZLIBCOMPRESSIONLEVEL │ zlibcompressionlevel │ When  the  MONGOC_URI_COMPRESSORS │
             │                                │                      │ includes   "zlib"   this  options │
             │                                │                      │ configures the  zlib  compression │
             │                                │                      │ level,  when  the zlib compressor │
             │                                │                      │ is used to compress client data.  │
             └────────────────────────────────┴──────────────────────┴───────────────────────────────────┘

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

AUTHENTICATION OPTIONS

             ┌───────────────────────────────────┬─────────────────────────┬──────────────────────────────┐
             │Constant                           │ Key                     │ Description                  │
             ├───────────────────────────────────┼─────────────────────────┼──────────────────────────────┤
             │MONGOC_URI_AUTHMECHANISM           │ authmechanism           │ Specifies the  mechanism  to │
             │                                   │                         │ use  when  authenticating as │
             │                                   │                         │ the   provided   user.   See │
             │                                   │                         │ Authentication for supported │
             │                                   │                         │ values.                      │
             ├───────────────────────────────────┼─────────────────────────┼──────────────────────────────┤
             │MONGOC_URI_AUTHMECHANISMPROPERTIES │ authmechanismproperties │ Certain       authentication │
             │                                   │                         │ mechanisms  have  additional │
             │                                   │                         │ options    that    can    be │
             │                                   │                         │ configured.  These   options │
             │                                   │                         │ should  be provided as comma │
             │                                   │                         │ separated                    │
             │                                   │                         │ option_key:option_value pair │
             │                                   │                         │ and       provided        as │
             │                                   │                         │ authMechanismProperties.     │
             ├───────────────────────────────────┼─────────────────────────┼──────────────────────────────┤
             │MONGOC_URI_AUTHSOURCE              │ authsource              │ The  authSource  defines the │
             │                                   │                         │ database that should be used │
             │                                   │                         │ to  authenticate  to.  It is │
             │                                   │                         │ unnecessary to provide  this │
             │                                   │                         │ option  the database name is │
             │                                   │                         │ the  same  as  the  database │
             │                                   │                         │ used in the URI.             │
             └───────────────────────────────────┴─────────────────────────┴──────────────────────────────┘

   Mechanism Properties
                ┌────────────────────────────────┬──────────────────────┬──────────────────────────────┐
                │Constant                        │ Key                  │ Description                  │
                ├────────────────────────────────┼──────────────────────┼──────────────────────────────┤
                │MONGOC_URI_CANONICALIZEHOSTNAME │ canonicalizehostname │ Use the  canonical  hostname │
                │                                │                      │ of  the service, rather than │
                │                                │                      │ its configured  alias,  when │
                │                                │                      │ authenticating          with │
                │                                │                      │ Cyrus-SASL Kerberos.         │
                ├────────────────────────────────┼──────────────────────┼──────────────────────────────┤
                │MONGOC_URI_GSSAPISERVICENAME    │ gssapiservicename    │ Use   alternative    service │
                │                                │                      │ name.    The    default   is │
                │                                │                      │ mongodb.                     │
                └────────────────────────────────┴──────────────────────┴──────────────────────────────┘

SSL OPTIONS

     ──────────────────────────────────────────────────────────────────────────────────────────────────────────────
      Constant                                     Key                               Description
     ──────────────────────────────────────────────────────────────────────────────────────────────────────────────
      MONGOC_URI_SSLCLIENTCERTIFICATEKEYFILE       sslclientcertificatekeyfile       Path    to   PEM   formatted
                                                                                     Private Key, with its Public
                                                                                     Certificate  concatenated at
                                                                                     the end.
     ──────────────────────────────────────────────────────────────────────────────────────────────────────────────
      MONGOC_URI_SSLCLIENTCERTIFICATEKEYPASSWORD   sslclientcertificatekeypassword   The password, if any, to use
                                                                                     to  unlock encrypted Private
                                                                                     Key.
     ──────────────────────────────────────────────────────────────────────────────────────────────────────────────
      MONGOC_URI_SSLCERTIFICATEAUTHORITYFILE       sslcertificateauthorityfile       One,   or   a   bundle   of,
                                                                                     Certificate Authorities whom
                                                                                     should be considered  to  be
                                                                                     trusted.
     ──────────────────────────────────────────────────────────────────────────────────────────────────────────────
      MONGOC_URI_SSLALLOWINVALIDCERTIFICATES       sslallowinvalidcertificates       Accept       and      ignore
                                                                                     certificate     verification
                                                                                     errors    (e.g.    untrusted
                                                                                     issuer, expired, etc etc)
     ──────────────────────────────────────────────────────────────────────────────────────────────────────────────
      MONGOC_URI_SSLALLOWINVALIDHOSTNAMES          sslallowinvalidhostnames          Ignore hostname verification
                                                                                     of the certificate (e.g. Man
                                                                                     In The Middle,  using  valid
                                                                                     certificate,  but issued for
                                                                                     another hostname)
     ┌───────────────────────────────────────────┬─────────────────────────────────┬──────────────────────────────┐
     │                                           │                                 │                              │
--

CONNECTION POOL OPTIONS

       These options  govern  the  behavior  of  a  mongoc_client_pool_t.  They  are  ignored  by  a  non-pooled
       mongoc_client_t.

                  ┌──────────────────────────────┬────────────────────┬──────────────────────────────┐
                  │Constant                      │ Key                │ Description                  │
                  └──────────────────────────────┴────────────────────┴──────────────────────────────┘

                  │MONGOC_URI_MAXPOOLSIZE        │ maxpoolsize        │ The    maximum   number   of │
                  │                              │                    │ clients   created    by    a │
                  │                              │                    │ mongoc_client_pool_t   total │
                  │                              │                    │ (both  in   the   pool   and │
                  │                              │                    │ checked  out).  The  default │
                  │                              │                    │ value is  100.  Once  it  is │
                  │                              │                    │ reached,                     │
                  │                              │                    │ mongoc_client_pool_pop       │
                  │                              │                    │ blocks  until another thread │
                  │                              │                    │ pushes a client.             │
                  ├──────────────────────────────┼────────────────────┼──────────────────────────────┤
                  │MONGOC_URI_MINPOOLSIZE        │ minpoolsize        │ Deprecated.  This   option's │
                  │                              │                    │ behavior  does not match its │
                  │                              │                    │ name,   and    its    actual │
                  │                              │                    │ behavior  will  likely  hurt │
                  │                              │                    │ performance.                 │
                  ├──────────────────────────────┼────────────────────┼──────────────────────────────┤
                  │MONGOC_URI_MAXIDLETIMEMS      │ maxidletimems      │ Not implemented.             │
                  ├──────────────────────────────┼────────────────────┼──────────────────────────────┤
                  │MONGOC_URI_WAITQUEUEMULTIPLE  │ waitqueuemultiple  │ Not implemented.             │
                  ├──────────────────────────────┼────────────────────┼──────────────────────────────┤
                  │MONGOC_URI_WAITQUEUETIMEOUTMS │ waitqueuetimeoutms │ Not implemented.             │
                  └──────────────────────────────┴────────────────────┴──────────────────────────────┘

WRITE CONCERN OPTIONS

                          ┌──────────────────────┬────────────┬──────────────────────────────┐
                          │Constant              │ Key        │ Description                  │
                          └──────────────────────┴────────────┴──────────────────────────────┘

                           MONGOC_URI_W            w            Determines the write concern
                                                                (guarantee). Valid values:

                                                                       • 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.
                          ├──────────────────────┼────────────┼──────────────────────────────┤
                          │MONGOC_URI_WTIMEOUTMS │ 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.                         │
                          ├──────────────────────┼────────────┼──────────────────────────────┤
                          │MONGOC_URI_JOURNAL    │ 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

                    ┌────────────────────────────┬──────────────────┬──────────────────────────────┐
                    │Constant                    │ Key              │ Description                  │
                    ├────────────────────────────┼──────────────────┼──────────────────────────────┤
                    │MONGOC_URI_READCONCERNLEVEL │ readconcernlevel │ The level of  isolation  for │
                    │                            │                  │ read   operations.   If  the │
                    │                            │                  │ level is  left  unspecified, │
                    │                            │                  │ the  server  default will be │
                    │                            │                  │ used. See readConcern in the │
                    │                            │                  │ MongoDB Manual for details.  │
                    └────────────────────────────┴──────────────────┴──────────────────────────────┘

READ PREFERENCE OPTIONS

       When connected to a replica set, the driver chooses which member to query using the read preference:

       1. Choose members whose type matches "readPreference".

       2. From these, if there are any tags sets configured, choose members matching the first tag set. If there
          are none, fall back to the next tag set and so on, until some members are chosen or the tag  sets  are
          exhausted.

       3. From  the  chosen  servers,  distribute  queries randomly among the server with the fastest round-trip
          times. These include the server with the fastest time and any whose round-trip time is  no  more  than
          "localThresholdMS" slower.

                 ┌───────────────────────────────┬─────────────────────┬──────────────────────────────┐
                 │Constant                       │ Key                 │ Description                  │
                 ├───────────────────────────────┼─────────────────────┼──────────────────────────────┤
                 │MONGOC_URI_READPREFERENCE      │ readpreference      │ Specifies  the  replica  set │
                 │                               │                     │ read  preference  for   this │
                 │                               │                     │ connection.   This   setting │
                 │                               │                     │ overrides any slaveOk value. │
                 │                               │                     │ The  read  preference values │
                 │                               │                     │ are the following:           │
                 │                               │                     │                              │
                 │                               │                     │        • primary (default)   │
                 │                               │                     │                              │
                 │                               │                     │        • primaryPreferred    │
                 │                               │                     │                              │
                 │                               │                     │        • secondary           │
                 │                               │                     │                              │
                 │                               │                     │        • secondaryPreferred  │
                 │                               │                     │                              │
                 │                               │                     │        • nearest             │
                 ├───────────────────────────────┼─────────────────────┼──────────────────────────────┤
                 │MONGOC_URI_READPREFERENCETAGS  │ readpreferencetags  │ A  representation  of  a tag │
                 │                               │                     │ set.        See         also │
                 │                               │                     │ mongoc-read-prefs-tag-sets.  │
                 ├───────────────────────────────┼─────────────────────┼──────────────────────────────┤
                 │MONGOC_URI_LOCALTHRESHOLDMS    │ localthresholdms    │ How    far   to   distribute │
                 │                               │                     │ queries, beyond  the  server │
                 │                               │                     │ with  the fastest round-trip │
                 │                               │                     │ time.   By   default,   only │
                 │                               │                     │ servers  within  15ms of the │
                 │                               │                     │ fastest   round-trip    time │
                 │                               │                     │ receive queries.             │
                 ├───────────────────────────────┼─────────────────────┼──────────────────────────────┤
                 │MONGOC_URI_MAXSTALENESSSECONDS │ maxstalenessseconds │ The maximum replication lag, │
                 │                               │                     │ in  wall  clock time, that a │
                 │                               │                     │ secondary  can  suffer   and │
                 │                               │                     │ still   be   eligible.   The │
                 │                               │                     │ smallest allowed  value  for │
                 │                               │                     │ maxStalenessSeconds   is  90 │
                 │                               │                     │ seconds.                     │
                 └───────────────────────────────┴─────────────────────┴──────────────────────────────┘

       NOTE:
          When connecting to more than one mongos, libmongoc's localThresholdMS applies only to the selection of
          mongos  servers.  The threshold for selecting among replica set members in shards is controlled by the
          mongos's localThreshold command line option.

LEGACY OPTIONS

       For historical reasons, the following options are available. They should however not be used.

                          ┌───────────────────┬─────────┬───────────────────────────────────┐
                          │Constant           │ Key     │ Description                       │
                          ├───────────────────┼─────────┼───────────────────────────────────┤
                          │MONGOC_URI_SAFE    │ safe    │ {true|false} Same as w={1|0}      │
                          ├───────────────────┼─────────┼───────────────────────────────────┤
                          │MONGOC_URI_SLAVEOK │ slaveok │ When    set,     same     as      │
                          │                   │         │ readPreference=secondaryPreferred │
                          └───────────────────┴─────────┴───────────────────────────────────┘

AUTHOR

       MongoDB, Inc

       2018, MongoDB, Inc