Advanced Connections
The following guide contains information specific to certain types of MongoDB configurations.
For an example of connecting to a simple standalone server, see the Tutorial. To establish a connection with authentication options enabled, see the Authentication page.
Connecting to a Replica Set
Connecting to a replica set is much like connecting to a standalone MongoDB server. Simply specify the replica set name using the ?replicaSet=myreplset URI option.
#include <bson.h> #include <mongoc.h> int main (int argc, char *argv[]) { mongoc_client_t *client; mongoc_init (); /* Create our MongoDB Client */ client = mongoc_client_new ("mongodb://host01:27017,host02:27017,host03:27017/?replicaSet=myreplset"); /* Do some work */ /* TODO */ /* Clean up */ mongoc_client_destroy (client); mongoc_cleanup (); return 0; }
Multiple hostnames can be specified in the MongoDB connection string URI, with a comma separating hosts in the seed list.
It is recommended to use a seed list of members of the replica set to allow the driver to connect to any node.
Connecting to an IPv6 Address
The MongoDB C Driver will automatically resolve IPv6 addresses from host names. However, to specify an IPv6 address directly, wrap the address in [].
mongoc_uri_t *uri = mongoc_uri_new ("mongodb://[::1]:27017");
Connecting to a UNIX Domain Socket
On UNIX-like systems, the C Driver can connect directly to a MongoDB server using a UNIX domain socket. Simply pass the path to the socket, which must be suffixed with .sock.
mongoc_uri_t *uri = mongoc_uri_new ("mongodb:///tmp/mysocket.sock");
Connecting directly to a UNIX domain socket is not a common practice.
Additional Connection Options
A variety of connection options for the MongoDB URI can be found here.