Navigation

Connect via Driver

The Connect dialog for a cluster provides the details to connect to a cluster with an application using a MongoDB driver.

Prerequisites

TLS/SSL

Clients must have support for TLS/SSL to connect to an Atlas cluster.

Clients must have support for the SNI TLS extension to connect to an Atlas M0 Free Tier or M2/M5 shared starter cluster. To verify that your driver supports the SNI TLS extension, refer to the Driver Compatibility matrix for your driver. Drivers which are compatible with MongoDB version 3.4 and up support the SNI TLS extension.

Whitelist
To access a cluster, you must connect from an IP address on the Atlas project’s IP whitelist. If you need to add an IP address to the whitelist, you can do so in the Connect dialog. You can also add the IP address from the Security tab.
MongoDB User

To access a cluster, you must create a MongoDB User with access to the desired database(s) on your Atlas cluster. MongoDB users are separate from Atlas users. MongoDB users have access to MongoDB databases, while Atlas users have access to the Atlas application itself.

You can create a MongoDB user to access to your Atlas cluster in the Connect dialog. You can also add the MongoDB user from the Clusters view.

Connect Your Application

1

Open the Connect dialog.

Go to the Clusters view. Click the Connect button for the cluster to which you wish to connect.

2

Whitelist your connection IP address.

Atlas only allows client connections to the cluster from entries in the project’s whitelist. The project whitelist is distinct from the API whitelist, which restricts API access to specific IP or CIDR addresses.

Note

You can skip this step if Atlas indicates in the Setup Connection Security step that you have already configured a whitelist entry in your cluster. To manage the IP whitelist, see Add Entries to the Whitelist.

If the whitelist is empty, Atlas prompts you to add an IP address to the project’s whitelist. You can either:

  • Click Add Your Current IP Address to whitelist your current IP address.

  • Click Add a Different IP Address to add a single IP address or a CIDR-notated range of addresses.

    For Atlas clusters deployed on Amazon Web Services and using VPC Peering, you can add a Security Group associated with the peer VPC.

You can provide an optional description for the newly added IP address or CIDR range. Click Add IP Address to add the address to the whitelist.

3

Create a MongoDB User.

To access the cluster, you must create a MongoDB user with access to the desired database(s) on the cluster.

Note

You can skip this step if Atlas indicates in the Setup Connection Security step that you have at least one MongoDB user configured in your project. To manage existing MongoDB users, see Add MongoDB Users.

If the project has no MongoDB users, Atlas prompts you to create a new user with the Atlas Admin privilege. Enter the new user’s Username and Password and click Create MongoDB User to save the user. Use this user to connect to your cluster in the following step.

Once you have whitelisted an IP address and added a MongoDB user, click Choose Your Connection Method.

4

Select Connect Your Application.

In the Choose a connection method step, select Connect Your Application.

The Connect dialog displays the URI connection string for connecting to the Atlas cluster with a MongoDB driver. Select the appropriate connection string based on the latest MongoDB version your driver supports. For example, if your driver supports MongoDB 3.6 or later, select SRV Connection String (3.6+ Driver). For details on driver compatibility with MongoDB, see Driver Compatibility.

The URI connection string uses a MongoDB user set up for the project as the user to authenticate as. Update the <PASSWORD> placeholder with the password for this user.

Important

If the password contains reserved URI characters, you must escape the characters per RFC 2396. For example, if your password is @bc123, you must escape the @ character when specifying the password in the connection string; i.e. %40bc123.

To connect with a different MongoDB user, update the USERNAME and PASSWORD components of the URI connection string with the username and password of a different MongoDB user.

mongodb://USERNAME:PASSWORD@...

You must also replace the <DATABASE> placeholder in the URI connection string with the database you want your application to connect to.

Driver Examples

The following examples use the URI connection string to authenticate and connect to an Atlas cluster. In the examples, PASSWORD has been replaced with the password (myRealPassword) for the user kay.

Select your driver from the options below:

    Note

    To connect to an Atlas M0 (Free Tier) cluster, you must use Python 2.7.9+ and use a Python driver version that supports MongoDB 3.4. For complete documentation on compatibility between the Python driver and MongoDB, see the MongoDB compatibility matrix.

    client = pymongo.MongoClient("mongodb+srv://kay:myRealPassword@cluster0.mongodb.net/test")
    db = client.test
    
    client = pymongo.MongoClient("mongodb://kay:myRealPassword@mycluster0-shard-00-00.mongodb.net:27017,mycluster0-shard-00-01.mongodb.net:27017,mycluster0-shard-00-02.mongodb.net:27017/admin?ssl=true&replicaSet=Mycluster0-shard-0&authSource=admin")
    db = client.test
    
    MongoDB Version Minimum Driver Version(s)
    MongoDB 3.6 Version 3.6 or greater
    MongoDB 3.4 Version 3.4 or greater
    MongoDB 3.2 Version 3.2 or greater

    macOSX and Python 3.6 Installers

    The Python 3.6 installers for macOS from https://www.python.org do not automatically install any CA certificates. Without installed CA certificates, connections to Atlas will fail certificate verification.

    As such, after you have run the installer from https://www.python.org to install Python 3.6, you must run the following script to install an up-to-date CA certificates bundle in order to connect to Atlas:

    open "/Applications/Python 3.6/Install Certificates.command"
    

    For more information on Python 3.6 installers for macOS from https://www.python.org, see https://bugs.python.org/issue29065#msg283984. Earlier versions of Python as well as Python 3.6 installed by other means are not affected.

    Note

    To connect to an Atlas M0 (Free Tier) cluster, you must use Java version 8 or greater and use a Java driver version that supports MongoDB 3.4. For complete documentation on compatibility between the Java driver and MongoDB, see the MongoDB compatibility matrix.

    MongoClientURI uri = new MongoClientURI(
        "mongodb+srv://kay:myRealPassword@cluster0.mongodb.net/");
    
    MongoClient mongoClient = new MongoClient(uri);
    MongoDatabase database = mongoClient.getDatabase("test");
    
    MongoClientURI uri = new MongoClientURI(
        "mongodb://kay:myRealPassword@mycluster0-shard-00-00.mongodb.net:27017,mycluster0-shard-00-01.mongodb.net:27017,mycluster0-shard-00-02.mongodb.net:27017/admin?ssl=true&replicaSet=Mycluster0-shard-0&authSource=admin");
    
    MongoClient mongoClient = new MongoClient(uri);
    MongoDatabase database = mongoClient.getDatabase("test");
    
    MongoDB Version Minimum Driver Version(s)
    MongoDB 3.6 Version 3.6 or greater
    MongoDB 3.4 Version 3.4 or greater
    MongoDB 3.2 Version 3.2 or greater and Version 2.14

    Note

    To connect to an Atlas M0 (Free Tier) or M2/M5 shared tier cluster, you must use a Node.js driver version that supports MongoDB 3.4. For complete documentation on compatibility between the Node.js driver and MongoDB, see the MongoDB compatibility matrix.

    var MongoClient = require('mongodb').MongoClient;
    
    var uri = "mongodb+srv://kay:myRealPassword@cluster0.mongodb.net/test";
    MongoClient.connect(uri, function(err, client) {
       const collection = client.db("test").collection("devices");
       // perform actions on the collection object
       client.close();
    });
    
    var MongoClient = require('mongodb').MongoClient;
    
    var uri = "mongodb://kay:myRealPassword@mycluster0-shard-00-00.mongodb.net:27017,mycluster0-shard-00-01.mongodb.net:27017,mycluster0-shard-00-02.mongodb.net:27017/admin?ssl=true&replicaSet=Mycluster0-shard-0&authSource=admin";
    MongoClient.connect(uri, function(err, db) {
       db.close();
    });
    

    To connect to a database other than admin but still authenticate to the admin database, update the database component of the connection string.

    mongodb://username:password@host1:port1,...,hostN:portN/database?authSource=admin&...
    

    For example, the following connection string specifies test in the database component and includes the authSource=admin option.

    var uriTestDb = "mongodb://kay:myRealPassword@mycluster0-shard-00-00.mongodb.net:27017,mycluster0-shard-00-01.mongodb.net:27017,mycluster0-shard-00-02.mongodb.net:27017/test?ssl=true&replicaSet=Mycluster0-shard-0&authSource=admin";
    MongoClient.connect(uriTestDb, function(err, db) {
       db.close();
    });
    
    MongoDB Version Minimum Driver Version(s)
    MongoDB 3.6 Version 3.0 or greater
    MongoDB 3.4 Version 2.2.0 or greater
    MongoDB 3.2 Version 2.2.0 or greater

    The following example uses the MongoDB PHP Library which provides a high-level abstraction around the lower-level PHP driver:

    $client = new MongoDB\Client(
        'mongodb://kay:myRealPassword@mycluster0-shard-00-00.mongodb.net:27017,mycluster0-shard-00-01.mongodb.net:27017,mycluster0-shard-00-02.mongodb.net:27017/admin?ssl=true&replicaSet=Mycluster0-shard-0&authSource=admin&serverSelectionTryOnce=false&serverSelectionTimeoutMS=15000"');
    
    $db = $client->test;
    

    Minimum Driver Version(s)

    To connect to an Atlas M0 (Free Tier) or M2/M5 shared tier cluster, you must use a PHP driver version that supports MongoDB 3.4. For complete documentation on compatibility between the PHP driver and MongoDB, see the MongoDB compatibility matrix.

    MongoDB drivers automatically attempt server selection following a cluster election or failover event. By default, the driver immediately raises an error if its first attempt to select a server fails. The following configuration settings may improve application connectivity to an Atlas cluster at the expense of spending more time in a server selection loop:

    • Set serverSelectionTryOnce to false to direct the driver to perform server selection up to the time limit defined by serverSelectionTimeoutMS.
    • Lower the serverSelectionTimeoutMS to 15000 from the default of 30000. MongoDB elections typically take 10 seconds, but can be as fast as 5 seconds on Atlas. Setting this value to 15 seconds (15000 milliseconds) covers the upper bound of election plus additional time for latency.

    Note

    To connect to an Atlas M0 (Free Tier) or M2/M5 shared tier cluster, you must use a C driver version that supports MongoDB 3.4. For complete documentation on compatibility between the C driver and MongoDB, see the MongoDB compatibility matrix.

    client = mongoc_client_new ("mongodb+srv://kay:myRealPassword@cluster0.mongodb.net/?serverSelectionTryOnce=false&serverSelectionTimeoutMS=15000");
    db = mongoc_client_get_database (client, "test");
    
    mongoc_client_t client = mongoc_client_new ("mongodb://kay:myRealPassword@mycluster0-shard-00-00.mongodb.net:27017,mycluster0-shard-00-01.mongodb.net:27017,mycluster0-shard-00-02.mongodb.net:27017/admin?ssl=true&replicaSet=Mycluster0-shard-0&authSource=admin&serverSelectionTryOnce=false&serverSelectionTimeoutMS=15000");
    db = mongoc_client_get_database (client, "test");
    
    MongoDB Version Minimum Driver Version(s)
    MongoDB 3.6 Version 1.9 or greater
    MongoDB 3.4 Version 1.5 or greater
    MongoDB 3.2 Version 1.3 or greater

    Note

    The following configuration options only apply if running the C driver in single-threaded mode.

    MongoDB drivers automatically attempt server selection following a cluster election or failover event. By default, the C driver immediately raises an error if its first attempt to select a server fails. The following configuration settings may improve application connectivity to an Atlas cluster at the expense of spending more time in a server selection loop:

    • Set serverSelectionTryOnce to false to direct the C driver to perform server selection up to the time limit defined by serverSelectionTimeoutMS.
    • Lower the serverSelectionTimeoutMS to 15000 from the default of 30000. MongoDB elections typically take 10 seconds, but can be as fast as 5 seconds on Atlas. Setting this value to 15 seconds (15000 milliseconds) covers the upper bound of election plus additional time for latency.
    #include <mongocxx/client.hpp>
    #include <mongocxx/instance.hpp>
    
    //...
    
    mongocxx::instance inst{};
    mongocxx::client conn{mongocxx::uri{"mongodb://kay:myRealPassword@mycluster0-shard-00-00.mongodb.net:27017,mycluster0-shard-00-01.mongodb.net:27017,mycluster0-shard-00-02.mongodb.net:27017/admin?ssl=true&replicaSet=Mycluster0-shard-0&authSource=admin&serverSelectionTryOnce=false&serverSelectionTimeoutMS=15000"}};
    mongocxx::database db = conn["test"];
    

    Minimum Driver Version(s)

    To connect to an Atlas M0 (Free Tier) or M2/M5 shared tier cluster, you must use a C++ driver version that supports MongoDB 3.4. For complete documentation on compatibility between the C++ driver and MongoDB, see the MongoDB compatibility matrix.

    Note

    The following configuration options only apply when using the C++ driver’s single-threaded mongocxx::client class to connect to the Atlas cluster.

    MongoDB drivers automatically attempt server selection following a cluster election or failover event. By default, the C++ driver immediately raises an error if its first attempt to select a server fails. The following configuration settings may improve application connectivity to an Atlas cluster at the expense of spending more time in a server selection loop:

    • Set serverSelectionTryOnce to false to direct the C++ driver to perform server selection up to the time limit defined by serverSelectionTimeoutMS.
    • Lower the serverSelectionTimeoutMS to 15000 from the default of 30000. MongoDB elections typically take 10 seconds, but can be as fast as 5 seconds on Atlas. Setting this value to 15 seconds (15000 milliseconds) covers the upper bound of election plus additional time for latency.
    var client = new MongoClient("mongodb://kay:myRealPassword@mycluster0-shard-00-00.mongodb.net:27017,mycluster0-shard-00-01.mongodb.net:27017,mycluster0-shard-00-02.mongodb.net:27017/admin?ssl=true&replicaSet=Mycluster0-shard-0&authSource=admin");
    var database = client.GetDatabase("test");
    

    Minimum Driver Version(s)

    Important

    The .NET Core library does not support the SNI TLS extension on Linux and OSX. Applications using .NET Core on these operating systems cannot connect to a Atlas M0 Free Tier or M2/M5 shared tier cluster.

    The issue is tracked on the dotnet/corefx github page.

    To connect to an Atlas M0 (Free Tier) or M2/M5 shared tier cluster, you must use a C#/.Net driver version that supports MongoDB 3.4. For complete documentation on compatibility between the C#/.Net driver and MongoDB, see the MongoDB compatibility matrix.

    my $client = MongoDB->connect("mongodb://kay:myRealPassword@mycluster0-shard-00-00.mongodb.net:27017,mycluster0-shard-00-01.mongodb.net:27017,mycluster0-shard-00-02.mongodb.net:27017/admin?ssl=true&replicaSet=Mycluster0-shard-0&authSource=admin&serverSelectionTryOnce=false&serverSelectionTimeoutMS=15000"");
    my $db = $client->get_database( 'test' );
    

    Minimum Driver Version(s)

    Version 1.2.x

    To connect to an Atlas M0 (Free Tier) or M2/M5 shared tier cluster, you must use a Perl driver version that supports MongoDB 3.4. For complete documentation on compatibility between the Perl driver and MongoDB, see the MongoDB compatibility matrix.

    MongoDB drivers automatically attempt server selection following a cluster election or failover event. By default, the Perl driver immediately raises an error if its first attempt to select a server fails. The following configuration settings may improve application connectivity to an Atlas cluster at the expense of spending more time in a server selection loop:

    • Set serverSelectionTryOnce to false to direct the Perl driver to perform server selection up to the time limit defined by serverSelectionTimeoutMS.
    • Lower the serverSelectionTimeoutMS to 15000 from the default of 30000. MongoDB elections typically take 10 seconds, but can be as fast as 5 seconds on Atlas. Setting this value to 15 seconds (15000 milliseconds) covers the upper bound of election plus additional time for latency.

    Note

    To connect to an Atlas M0 (Free Tier) or M2/M5 shared tier cluster, you must use a Ruby driver version that supports MongoDB 3.4. For complete documentation on compatibility between the Ruby driver and MongoDB, see the MongoDB compatibility matrix.

    client = Mongo::Client.new('mongodb+srv://kay:myRealPassword@cluster0.mongodb.net/test')
    
    client = Mongo::Client.new('mongodb://kay:myRealPassword@mycluster0-shard-00-00.mongodb.net:27017,mycluster0-shard-00-01.mongodb.net:27017,mycluster0-shard-00-02.mongodb.net:27017/admin?ssl=true&replicaSet=Mycluster0-shard-0&authSource=admin')
    

    To connect to a database other than admin but still authenticate to the admin database, update the database component of the connection string.

    mongodb://username:password@host1:port1,...,hostN:portN/database?authSource=admin&...
    

    For example, the following connection string specifies test in the database component and includes the authSource=admin option.

    client = Mongo::Client.new('mongodb://kay:myRealPassword@mycluster0-shard-00-00.mongodb.net:27017,mycluster0-shard-00-01.mongodb.net:27017,mycluster0-shard-00-02.mongodb.net:27017/test?ssl=true&replicaSet=Mycluster0-shard-0&authSource=admin')
    
    MongoDB Version Minimum Driver Version(s)
    MongoDB 3.6 Version 2.5 or greater
    MongoDB 3.4 Version 2.4 or greater
    MongoDB 3.2 Version 2.2 or greater

    Mongoid Example

    production:
      # Configure available database clients. (required)
      clients:
        # Defines the default client. (required)
        default:
          # Defines the name of the default database that Mongoid can connect to.
          # (required).
          database: 'myDatabaseName'
    
          # Provides the hosts the default client can connect to. Must be an array
          # of host:port pairs. (required)
          hosts:
            - mycluster0-shard-00-00.mongodb.net:27017
            - mycluster0-shard-00-01.mongodb.net:27017
            - mycluster0-shard-00-02.mongodb.net:27017
          options:
            # The name of the user for authentication.
            user: kay
    
            # The password of the user for authentication.
            password: myRealPassword
    
            # The database or source to authenticate the user against. If the database
            # specified above is not admin, admin MUST be specified here.
            auth_source: admin
    
            # All Atlas servers use SSL. (default: false)
            ssl: true
    
    MongoDB Version Minimum ODM Version
    MongoDB 3.6 Version 6.3.0 or greater
    MongoDB 3.4 or earlier Version 6.1.0 or greater
    val uri: String = "mongodb://kay:myRealPassword@mycluster0-shard-00-00.mongodb.net:27017,mycluster0-shard-00-01.mongodb.net:27017,mycluster0-shard-00-02.mongodb.net:27017/admin?ssl=true&replicaSet=Mycluster0-shard-0&authSource=admin"
    System.setProperty("org.mongodb.async.type", "netty")
    val client: MongoClient = MongoClient(uri)
    val db: MongoDatabase = client.getDatabase("test")
    

    Minimum Driver Version(s)

    Version 1.1

    To connect to an Atlas M0 (Free Tier) or M2/M5 shared tier cluster, you must use a Scala driver version that supports MongoDB 3.4. For complete documentation on compatibility between the Scala driver and MongoDB, see the MongoDB compatibility matrix.