Docs 菜单
Docs 主页
/
MongoDB Atlas
/ /

通过驱动程序连接

在此页面上

  • 先决条件
  • 连接您的应用程序
  • 驱动程序示例
  • 故障排除

集群的 Connect 对话框提供了使用 MongoDB 驱动程序通过应用程序连接到集群的详细信息。

注意

无服务器实例目前不支持通过某些驱动程序或驱动程序版本进行连接。要了解更多信息,请参阅 无服务器实例限制。


➤ 使用 Select your language(选择您的语言)下拉菜单设置此页面上示例的语言。


重要

专用集群限制

如果在 Linux 上使用 .NET 5.0 运行 C#,您无法在 Atlas 的专用集群中连接到 MongoDB 4.0。此问题仅适用于 Atlas 专用集群。此问题不影响集群层级 M0 到 M5。如果您运行的是早期的 .NET 或 .NET Core 版本,并想升级到 .NET 5.0,请联系 MongoDB Atlas 支持。

驱动程序版本必须与 MongoDB Server 版本兼容。我们建议你选择与 MongoDB Server 版本兼容的最新驱动程序,以使用最新的数据库功能并为将来的版本升级做好准备。

如需查看包含您的 MongoDB Server 版本全套功能的驱动程序版本列表,请查看 MongoDB 驱动程序的兼容性矩阵。

有关可用于连接无服务器实例的驱动程序版本的列表,请参阅无服务器实例的最低驱动程序版本

要使用驱动程序和优化的连接字符串连接到分片集群,您必须至少使用以下驱动程序版本之一:

驱动
版本
1.19.0
3.7.0beta1
2.13.0
1.6.0
4.3.0
4.10.0
2.5.0
4.1.0
1.11.0 (Extension)
1.10.0 (Library)
3.12.0
2.16.0
2.1.0
4.3.0
1.2.0

客户端必须支持 TLS 才能连接到 Atlas 集群。

客户端必须支持 SNI TLS 扩展才能连接到 Atlas M0 Free 集群或 M2/M5 共享集群。要验证 MongoDB 驱动程序 是否支持 SNI TLS 扩展,请参阅驱动程序文档中的“兼容性”部分。如果驱动程序兼容 MongoDB 4.2 及更高版本,则支持 SNI TLS 扩展。

要访问集群,您必须从 Atlas 项目的 IP 访问列表上的 IP 地址进行连接。如需在 IP 访问列表中添加 IP 地址,您可以在 Connect 对话框中执行此操作。您也可以通过网络访问标签页添加 IP 地址。

要访问集群,您必须创建一个有权访问 Atlas 集群上的所需数据库的数据库用户。数据库用户不同于 Atlas 用户。数据库用户可访问 MongoDB 数据库,而 Atlas 用户可访问 Atlas 应用程序本身。

您可以在 Connect 对话框中创建数据库用户来访问 Atlas 集群。您还可以从集群视图添加数据库用户。

1
  1. 如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。

  2. 如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。

  3. 如果尚未出现,请单击侧边栏中的 Clusters(部署)。

    会显示集群页面。

2

单击要连接的集群所对应的 Connect

3

Choose Connection Type

注意

启用功能时显示的选项

Atlas 显示连接类型选项(在启用对等互连的私有 IP私有端点或两者后)。如果您尚未启用任一功能,则不会显示任何按钮,并且连接类型默认为标准

将此连接类型用于允许的公共 IP 地址。

如果已启用对等互连,请使用此连接类型:

  • 适用于 Google Cloud 或 Azure 并通过您的驱动程序从对等互连网络连接,或

  • 对于 AWS,并且通过使用自定义 DNS 服务的对等网络与您的驱动程序连接。

如果这些都不适用,请将您的 IP 地址添加到 IP 访问列表中,并使用标准连接字符串。如果您通过办公室或家庭网络直接连接到 Atlas,这可能是首选选项。

注意

对等互连必须可用

除非对等互连被标记为 AVAILABLE,否则您无法选择此选项。要检查对等互连的状态,请执行以下操作

在 Atlas 中,进入项目的 Network Access 页面。

  1. 如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。

  2. 如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。

  3. 在侧边栏中,单击 Security 标题下的 Network Access

    显示网络访问页面。

注意

多云集群

如果您的应用程序与集群的主节点未托管在同一云服务提供商上,则该应用程序只能执行从节点读取。

对于多云集群,可考虑在连接字符串中添加 readPreference 连接选项。使用以下值之一:

如果您通过私有端点连接与驱动程序连接,请使用相应接口端点的连接string ,因为您的驱动程序:

  • 在云提供商网络内运行,或

  • 具有对云提供商网络的可传递网络访问权限。

  • 您想使用优化的连接字符串

如果这些都不适用,请将您的 IP 地址添加到 IP 访问列表中,并使用 Standard Connection 字符串。如果您通过办公室或家庭网络直接连接到 Atlas,这可能是首选选项。

注意

除非已配置的 PrivateLink 连接已准备就绪,否则无法选择此选项。要查看 AWS PrivateLink 的状态:

在 Atlas 中,进入项目的 Network Access 页面。

  1. 如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。

  2. 如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。

  3. 在侧边栏中,单击 Security 标题下的 Network Access

    显示网络访问页面。

4

Add a Connection IP Address

重要

如果 Atlas 在 Setup connection security 步骤中指示您已经在集群中配置了 IP 访问列表条目,请跳过此步骤。要管理 IP 访问列表,请参阅向访问列表添加条目

Atlas 支持标准客户端从项目的 IP 访问列表中的条目连接到集群。项目 IP 访问列表与 API 访问列表不同,后者将 API 访问权限限制为特定的 IP 或 CIDR 地址。

如果 IP 访问列表为空,Atlas 会提示您将 IP 地址添加到项目的 IP 访问列表中。您可以执行以下任一操作:

  • 单击 Add Your Current IP Address 以允许从当前 IP 地址进行访问。

  • 单击 Add an IP Address 添加单个 IP 地址或带有 CIDR 标记的地址范围。

为新添加的 IP 地址或 CIDR 范围提供可选描述。单击 Add IP Address 将地址添加到 IP 访问列表。

Add a Connection IP Address

重要

如果 Atlas 在 Setup connection security 步骤中指示您已经在集群中配置了 IP 访问列表条目,请跳过此步骤。要管理 IP 访问列表,请参阅向 IP 访问列表添加条目

Atlas 支持标准客户端从项目的 IP 访问列表中的条目连接到集群。项目 IP 访问列表与 API 访问列表不同,后者将 API 访问权限限制为特定的 IP 或 CIDR 地址。

如果 IP 访问列表为空,Atlas 会提示您将 IP 地址添加到项目的 IP 访问列表中。单击 Add a Different IP Address 添加单个 IP 地址或带有 CIDR 标记的地址范围。

为新添加的 IP 地址或 CIDR 范围提供可选描述。单击 Add IP Address 将地址添加到 IP 访问列表。

  1. Choose Connection Type 下,选择 Private Endpoint

  2. 如果看到 Private Link Type 选项,请选择以下选项之一:

    • Optimized SRV Connection 用于负载均衡连接。

    • Legacy SRV Connection 用于非负载均衡连接。

    要了解更多信息,请参阅提高私有端点后分片集群的连接性能。

  3. Choose Private Endpoint 下,选择要使用的端点。

5

重要

如果 Atlas 在 Setup connection security(设置连接安全)步骤中指示项目中至少已配置一个数据库用户,请跳过此步骤。如要管理现有数据库用户,请参阅配置数据库用户

要访问集群,您需要一个可以访问项目集群所需数据库的 MongoDB 用户。如果您的项目没有 MongoDB 用户,Atlas 会提示您创建一个具有 Atlas Admin 角色的新用户。

  1. 输入新用户的 Username(用户名)。

  2. 输入此新用户的 Password(密码)或单击 Autogenerate Secure Password(自动生成安全密码)。

  3. 单击 Create Database User(创建数据库用户)以保存此用户。

在以下步骤中,使用此用户连接集群。

将 IP 地址添加到 IP 访问列表并添加数据库用户后,单击 Choose Your Connection Method(选择连接方法)。

6

Choose a connection method(选择连接方法)步骤中,选择Drivers(连接应用程序)。

7

从下拉菜单中选择您的驱动程序和版本。显示包含连接字符串的代码示例。将 <password> 替换为您创建数据库用户时指定的密码。

注意

如果您的密码、数据库名称或连接字符串包含保留的 URI 字符,则必须对这些字符进行转义。例如,如果您的密码是 @bc123,则在连接字符串中指定密码时必须对 @ 字符进行转义,例如 %40bc123。要了解详情,请参阅连接字符串密码中的特殊字符

要了解更多信息,请参阅驱动程序兼容性

在以下示例中,您使用 URI 连接字符串进行身份验证并连接到 Atlas 集群。将示例中的占位符替换为您的凭证和部署详细信息。

注意

要连接到 Atlas M0 免费集群或 M2/M5 共享集群,必须使用支持 MongoDB 4.0 及更高版本的 C 驱动程序版本。有关 C 驱动程序与 MongoDB 之间兼容性的完整文档,请参阅 MongoDB 兼容性矩阵。我们建议您升级到最新版本的驱动程序。

client = mongoc_client_new ("mongodb+srv://<db_username>:<db_password>@<clusterName>.mongodb.net/?retryWrites=true&w=majority");
db = mongoc_client_get_database (client, "<databaseName>");
MongoDB 版本
推荐的驱动程序版本
所有
有关最新推荐的驱动程序版本,请参阅 MongoDB 兼容性矩阵
MongoDB 5.0 及更高版本
1.11 及更高版本

注意

以下配置选项仅适用于以单线程模式运行 C 驱动程序的情况。

MongoDB 驱动程序在集群选举或故障转移事件后自动尝试选择服务器。默认情况下,如果 C 驱动程序第一次尝试选择服务器失败,则会立即引发错误。以下配置设置可提高应用程序与 Atlas 集群的连接性,但会在服务器选择循环中花费更多时间:

  • serverSelectionTryOnce 设置为 false 以指示 C 驱动程序在 serverSelectionTimeoutMS 定义的时间限制内执行服务器选择。

  • serverSelectionTimeoutMS 从默认值 30000 降低到 15000。MongoDB 选举通常需要 10 秒,但在 Atlas 上只需 5 秒。将此值设置为 15 秒(15000 毫秒)涵盖了选举的上限加上额外的延迟时间。

注意

要连接到 Atlas M0 免费集群或 M2/M5 共享集群,您必须使用支持 MongoDB 4.0 及更高版本的 C++ 驱动程序版本。有关 C++ 驱动程序与 MongoDB 之间兼容性的完整文档,请参阅 MongoDB 兼容性矩阵。我们建议您升级到最新版本的驱动程序。

#include <mongocxx/client.hpp>
#include <mongocxx/instance.hpp>
//...
mongocxx::instance inst{};
mongocxx::client conn{mongocxx::uri{"mongodb+srv://<db_username>:<db_password>@<clusterName>.mongodb.net/?retryWrites=true&w=majority"}};
mongocxx::database db = conn["<databaseName>"];
MongoDB 版本
推荐的驱动程序版本
所有
有关最新推荐的驱动程序版本,请参阅 MongoDB 兼容性矩阵

注意

旧版 C++ 驱动程序已达到生命周期结束日期,不再受支持。

注意

以下配置选项仅适用于使用 C++ 驱动程序的单线程mongocxx::client 类连接 Atlas 集群的情况。

MongoDB 驱动程序在集群选举或故障转移事件后自动尝试选择服务器。默认情况下,如果 C++ 驱动程序第一次尝试选择服务器失败,则会立即引发错误。以下配置设置可提高应用程序与 Atlas 集群的连接性,但会在服务器选择循环中花费更多时间:

  • serverSelectionTryOnce 设置为 false 以指示 C++ 驱动程序在 serverSelectionTimeoutMS 定义的时间限制内执行服务器选择。

  • serverSelectionTimeoutMS 从默认值 30000 降低到 15000。MongoDB 选举通常需要 10 秒,但在 Atlas 上只需 5 秒。将此值设置为 15 秒(15000 毫秒)涵盖了选举的上限加上额外的延迟时间。

注意

要连接到 Atlas M0 免费集群或 M2/M5 共享集群,您必须使用支持 MongoDB 4.0 及更高版本的 C#/.Net 驱动程序版本。有关 C#/.Net 驱动程序与 MongoDB 之间兼容性的完整文档,请参阅 MongoDB 兼容性矩阵。我们建议您升级到最新版本的驱动程序。

var client = new MongoClient("mongodb+srv://<db_username>:<db_password>@<clusterName>.mongodb.net/?retryWrites=true&w=majority");
var database = client.GetDatabase("<databaseName>");
MongoDB 版本
推荐的驱动程序版本
所有
有关最新推荐的驱动程序版本,请参阅 MongoDB 兼容性矩阵
MongoDB 5.0 及更高版本
版本 2.7 或更高版本

注意

Microsoft .NET Core 库版本2.1及更高版本支持Linux和 macOS 上的SNI TLS扩展。在这些平台上使用早期版本的.NET Core 的应用程序无法连接到Atlas M0免费集群或M2/M5共享集群。

要了解有关此要求的更多信息,请参阅此 dotnet /corefx 问题

注意

要连接到 Atlas M0 免费集群或 M2/M5 共享集群,您必须使用支持 MongoDB 4.0 及更高版本的 Go 驱动程序版本。有关 Go 驱动程序与 MongoDB 之间兼容性的完整文档,请参阅 MongoDB 兼容性矩阵。我们建议您升级到最新版本的驱动程序。

uri := "mongodb+srv://<db_username>:<db_password>@<clusterName>.mongodb.net/?retryWrites=true&w=majority"
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()
client, err := mongo.Connect(ctx, options.Client().ApplyURI(uri))
if err != nil {
panic(err)
}
defer func() {
if err = client.Disconnect(ctx); err != nil {
panic(err)
}
}()
// Ping the primary
if err := client.Ping(ctx, readpref.Primary()); err != nil {
panic(err)
}
MongoDB 版本
推荐的驱动程序版本
所有
有关最新推荐的驱动程序版本,请参阅 MongoDB 兼容性矩阵
MongoDB 5.0 及更高版本
版本 1.0.0 及更高版本

注意

要连接到 Atlas M0 集群,您必须使用 Java 版本 8 或更高版本,使用支持 MongoDB 4.0 或更高版本的 Java 驱动程序版本。要了解有关 Java 驱动程序与 MongoDB 之间兼容性的更多信息,请参阅 MongoDB 兼容性矩阵

MongoClientURI uri = new MongoClientURI(
"mongodb+srv://<db_username>:<db_password>@<clusterName>.mongodb.net/?retryWrites=true&w=majority");
MongoClient mongoClient = MongoClients.create(uri);
MongoDatabase database = mongoClient.getDatabase("<databaseName>");
MongoDB 版本
推荐的驱动程序版本
所有
有关最新推荐的驱动程序版本,请参阅 MongoDB 兼容性矩阵
MongoDB 5.0 及更高版本
版本 3.8 或更高版本

注意

要连接到 Atlas M0 免费集群或 M2/M5 共享集群,您必须使用支持 MongoDB 4.0 及更高版本的 Kotlin 驱动程序版本。有关 Kotlin 驱动程序与 MongoDB 之间兼容性的完整文档,请参阅 MongoDB 兼容性矩阵。我们建议您升级到最新版本的驱动程序。

val uri = "mongodb+srv://<db_username>:<db_password>@<clusterName>.mongodb.net/?retryWrites=true&w=majority"
// Construct a ServerApi instance using the ServerApi.builder() method
val serverApi = ServerApi.builder()
.version(ServerApiVersion.V1)
.build()
val settings = MongoClientSettings.builder()
.applyConnectionString(ConnectionString(uri))
.serverApi(serverApi)
.build()
// Create a new client and connect to the server
val mongoClient = MongoClient.create(settings)
val database = mongoClient.getDatabase("<databaseName>")
try {
// Send a ping to confirm a successful connection
val command = Document("ping", BsonInt64(1))
val commandResult = database.runCommand(command)
println("Pinged your deployment. You successfully connected to MongoDB!")
}
catch (me: MongoException) {
System.err.println(me)
}
MongoDB 版本
推荐的驱动程序版本
MongoDB 5.0 及更高版本
版本 4.10 或更高版本

注意

要连接到 Atlas M0 免费集群或 M2/M5 共享集群,必须使用支持 MongoDB 4.0 及更高版本的 Node.js 驱动程序版本。有关 Node.js 驱动程序与 MongoDB 之间兼容性的完整文档,请参阅 MongoDB 兼容性矩阵。我们建议您升级到最新版本的驱动程序。

import mongodb from 'mongodb';
const MongoClient = mongodb.MongoClient;
const uri = "mongodb+srv://<db_username>:<db_password>@<clusterName>.mongodb.net/?retryWrites=true&w=majority";
const client = new MongoClient(uri, { useNewUrlParser: true });
client.connect(err => {
const collection = client.db("<databaseName>").collection("<collectionName>");
// perform actions on the collection object
client.close();
});

要连接到除 admin 之外的数据库,但仍对 admin 数据库进行身份验证,请更新连接字符串的 database 组件。

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

例子

以下连接字符串指定 cluster0 部署和 test 数据库组件,并包含 authSource=admin 选项。

var uriTestDb = "mongodb+srv://<db_username>:<db_password>@cluster0.mongodb.net/test?ssl=true&authSource=admin&w=majority";
MongoClient.connect(uriTestDb, function(err, db) {
db.close();
});
MongoDB 版本
推荐的驱动程序版本
所有
有关最新推荐的驱动程序版本,请参阅 MongoDB 兼容性矩阵
MongoDB 5.0 及更高版本
版本 3.1 及更高版本

注意

要连接到 Atlas M0 免费集群或 M2/M5 共享集群,您必须使用支持 MongoDB 4.0 及更高版本的 Perl 驱动程序版本。有关 Perl 驱动程序与 MongoDB 之间兼容性的完整文档,请参阅 MongoDB 兼容性矩阵。我们建议您升级到最新版本的驱动程序。

my $client = MongoDB->connect('mongodb+srv://<db_username>:<db_password>@<clusterName>.mongodb.net/?retryWrites=true&w=majority');
my $db = $client->get_database( '<databaseName>' );
MongoDB 版本
推荐的驱动程序版本
MongoDB 4.2
MongoDB 不再维护 Perl 驱动程序;驱动程序版本 2. 2. 2 最高支持 MongoDB 4. 2,可从 https://metacpan.org/pod/MongoDB 获取

MongoDB 驱动程序在集群选举或故障转移事件后自动尝试选择服务器。默认情况下,如果 Perl 驱动程序第一次尝试选择服务器失败,则会立即引发错误。以下配置设置可提高应用程序与 Atlas 集群的连接性,但会在服务器选择循环中花费更多时间:

  • serverSelectionTryOnce 设置为 false ,指示 Perl 驱动程序在 serverSelectionTimeoutMS 定义的时间限制内执行服务器选择。

  • serverSelectionTimeoutMS 从默认值 30000 降低到 15000。MongoDB 选举通常需要 10 秒,但在 Atlas 上只需 5 秒。将此值设置为 15 秒(15000 毫秒)涵盖了选举的上限加上额外的延迟时间。

注意

要连接到 Atlas M0 免费集群或 M2/M5 共享集群,您必须使用支持 MongoDB 4.0 及更高版本的 PHP 驱动程序版本。有关 PHP 驱动程序与 MongoDB 之间兼容性的完整文档,请参阅 MongoDB 兼容性矩阵。我们建议您升级到最新版本的驱动程序。

以下示例使用 MongoDB PHP 库,该库为较低级别的 PHP 驱动程序提供了高级抽象:

$client = new MongoDB\Client(
'mongodb+srv://<db_username>:<db_password>@<clusterName>.mongodb.net/?retryWrites=true&w=majority');
$db = $client-><databaseName>;
MongoDB 版本
推荐的驱动程序版本
所有
有关最新推荐的驱动程序版本,请参阅 MongoDB 兼容性矩阵
MongoDB 5.0 及更高版本
PHPLIB 1.4 + mongodb- 1.5 。

MongoDB 驱动程序在集群选举或故障转移事件后自动尝试选择服务器。默认情况下,如果驱动程序第一次尝试选择服务器失败,则会立即引发错误。以下配置设置可提高应用程序与 Atlas 集群的连接性,但会在服务器选择循环中花费更多时间:

  • serverSelectionTryOnce 设置为 false 以指示驱动程序在 serverSelectionTimeoutMS 定义的时间限制内执行服务器选择。

  • serverSelectionTimeoutMS 从默认值 30000 降低到 15000。MongoDB 选举通常需要 10 秒,但在 Atlas 上只需 5 秒。将此值设置为 15 秒(15000 毫秒)涵盖了选举的上限加上额外的延迟时间。

注意

要连接到 Atlas M0 集群,您必须使用 Python 2.7.9 或更高版本,使用支持 MongoDB 4.0 或更高版本的 Python 驱动程序版本。要了解 Python 驱动程序与 MongoDB 之间兼容性的更多信息,请参阅 MongoDB 兼容性矩阵

import pymongo
import dns # required for connecting with SRV
client = pymongo.MongoClient("mongodb+srv://<db_username>:<db_password>@<clusterName>.mongodb.net/?retryWrites=true&w=majority")
db = client.<databaseName>
MongoDB 版本
推荐的驱动程序版本
所有
有关最新推荐的驱动程序版本,请参阅 MongoDB 兼容性矩阵
MongoDB 5.0 及更高版本
版本 3.7 或更高版本

注意

macOS 和 Python 3.6安装

https://www.python.org 中适用于 macOS 的 Python 3. 6 安装程序不会自动安装任何 CA 证书。如果没有安装 CA 证书,与 Atlas 的连接将无法通过证书验证。

https://www.python.org 运行安装程序安装 Python 3.6 后,在连接 Atlas 之前,您必须运行以下脚本安装最新的 CA 捆绑包:

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

有关适用于 macOS 的 Python 3.6 安装程序的更多信息,请访问 https://www.python.org,请参阅 https://bugs.python.org/issue29065#msg283984。通过其他方式安装的早期版本的 Python 以及 Python 3.6(例如Homebrew)不受影响。

注意

要连接到 Atlas M0 免费集群或 M2/M5 共享集群,您必须使用支持 MongoDB 4.0 及更高版本的 Ruby 驱动程序版本。有关 Ruby 驱动程序与 MongoDB 之间兼容性的完整文档,请参阅 MongoDB 兼容性矩阵。我们建议您升级到最新版本的驱动程序。

client = Mongo::Client.new('mongodb+srv://<db_username>:<db_password>@<clusterName>.mongodb.net/?retryWrites=true&w=majority')

要连接到除 admin 之外的数据库,但仍对 admin 数据库进行身份验证,请更新连接字符串的 database 组件。

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

例子

以下连接字符串指定 cluster0 部署和 test 数据库组件,并包含 authSource=admin 选项。

client = Mongo::Client.new('mongodb+srv://<db_username>:<db_password>@cluster0.mongodb.net/test?ssl=true&replicaSet=Mycluster0-shard-0&authSource=admin&w=majority')
MongoDB 版本
推荐的驱动程序版本
所有
有关最新推荐的驱动程序版本,请参阅 MongoDB 兼容性矩阵
MongoDB 5.0 及更高版本
版本 2.6 或更高版本
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: <username>
# The password of the user for authentication.
password: <password>
# 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 版本
最低 ODM 版本
MongoDB 5.0 及更高版本

驱动程序使用的默认异步运行时为 tokio。要使用不同的运行时,请参阅配置异步运行时。

注意

要连接到 Atlas M0 免费集群或 M2/M5 共享集群,您必须使用支持 MongoDB 4.0 及更高版本的 Rust 驱动程序版本。有关 Rust 驱动程序与 MongoDB 之间兼容性的完整文档,请参阅 MongoDB 兼容性矩阵。我们建议您升级到最新版本的驱动程序。

use mongodb::{options::ClientOptions, Client};
#[tokio::main]
async fn main() -> mongodb::error::Result<()> {
let client_options = ClientOptions::parse(
"mongodb+srv://<db_username>:<db_password>@<clusterName>.mongodb.net/?retryWrites=true&w=majority",
)
.await?;
let client = Client::with_options(client_options)?;
let _database = client.database("<databaseName>");
// List the names of the databases in that cluster
for db_name in client.list_database_names(None, None)? {
println!("{}", db_name);
}
Ok(())
}
MongoDB 版本
推荐的驱动程序版本
所有
有关最新推荐的驱动程序版本,请参阅 MongoDB 兼容性矩阵

确保已启用同步 API。更多详情,请参阅启用同步 API

注意

要连接到 Atlas M0 免费集群或 M2/M5 共享集群,您必须使用支持 MongoDB 4.0 及更高版本的 Rust 驱动程序版本。有关 Rust 驱动程序与 MongoDB 之间兼容性的完整文档,请参阅 MongoDB 兼容性矩阵。我们建议您升级到最新版本的驱动程序。

use mongodb::{bson::doc, sync::Client};
fn main() -> mongodb::error::Result<()> {
let client_options = ClientOptions::parse(
"mongodb+srv://<db_username>:<db_password>@<clusterName>.mongodb.net/?retryWrites=true&w=majority",
)?;
// Ping the server to see if you can connect to the cluster
client
.database("admin")
.run_command(doc! {"ping": 1}, None)?;
println!("Connected successfully.");
// List the names of the databases in that cluster
for db_name in client.list_database_names(None, None)? {
println!("{}", db_name);
}
Ok(())
}
MongoDB 版本
推荐的驱动程序版本
所有
有关最新推荐的驱动程序版本,请参阅 MongoDB 兼容性矩阵

注意

要连接到 Atlas M0 免费集群或 M2/M5 共享集群,您必须使用支持 MongoDB 4.0 及更高版本的 Scala 驱动程序版本。有关 Scala 驱动程序与 MongoDB 之间兼容性的完整文档,请参阅 MongoDB 兼容性矩阵。我们建议您升级到最新版本的驱动程序。

val uri: String = "mongodb+srv://<db_username>:<db_password>@<clusterName>.mongodb.net/?retryWrites=true&w=majority"
System.setProperty("org.mongodb.async.type", "netty")
val client: MongoClient = MongoClient(uri)
val db: MongoDatabase = client.getDatabase("<databaseName>")
MongoDB 版本
推荐的驱动程序版本
所有
有关最新推荐的驱动程序版本,请参阅 MongoDB 兼容性矩阵

注意

要连接到 Atlas M0 免费集群或 M2/M5 共享集群,您必须使用支持 MongoDB 4.0 及更高版本的 Swift 驱动程序版本。有关 Swift 驱动程序与 MongoDB 之间兼容性的完整文档,请参阅 MongoDB 兼容性矩阵。我们建议您升级到最新版本的驱动程序。

import MongoSwift
import NIO
let elg = MultiThreadedEventLoopGroup(numberOfThreads: 4)
let uri = "mongodb+srv://<db_username>:<db_password>@<clusterName>.mongodb.net/?retryWrites=true&w=majority"
let client = try MongoClient(
uri,
using: elg
)
defer {
// clean up driver resources
try? client.syncClose()
cleanupMongoSwift()
// shut down EventLoopGroup
try? elg.syncShutdownGracefully()
}
// print a list of database names to confirm connection
print(try client.listDatabaseNames().wait())
MongoDB 版本
推荐的驱动程序版本
所有
有关最新推荐的驱动程序版本,请参阅 MongoDB 兼容性矩阵

注意

要连接到 Atlas M0 免费集群或 M2/M5 共享集群,您必须使用支持 MongoDB 4.0 及更高版本的 Swift 驱动程序版本。有关 Swift 驱动程序与 MongoDB 之间兼容性的完整文档,请参阅 MongoDB 兼容性矩阵。我们建议您升级到最新版本的驱动程序。

import MongoSwiftSync
let uri = "mongodb+srv://<db_username>:<db_password>@<clusterName>.mongodb.net/?retryWrites=true&w=majority"
let client = try MongoClient(uri)
// print a list of database names to confirm connection
print (try client.listDatabaseNames())
MongoDB 版本
推荐的驱动程序版本
所有
有关最新推荐的驱动程序版本,请参阅 MongoDB 兼容性矩阵

如果在连接到集群时遇到问题,请参阅解决连接问题。

提示

另请参阅:

后退

连接方法