Docs 菜单
Docs 主页
/ / /
C#/.NET
/ /

连接指南

在此页面上

  • 连接 URI
  • MongoClientSettings
  • 其他连接目标
  • 连接到 Atlas
  • 连接到副本集

本指南介绍如何使用 .NET/C# 驱动程序连接到 MongoDB 实例或副本集部署。

连接 URI(也称为连接字符串)可告知驱动程序如何连接到 MongoDB 部署,以及连接后如何进行操作。

标准连接字符串包括以下部分:

说明
mongodb://
必需。将其标识为标准连接格式中字符串的前缀。
username:password@
可选。身份验证凭证。如果包含这些内容,客户端将根据 authSource 中指定的数据库对用户进行身份验证。
host[:port]
必需。运行 MongoDB 的主机和可选端口号。如果未包含端口号,则驱动程序将使用默认端口 27017
/defaultauthdb
可选。如果连接字符串包含 username:password@ 身份验证档案但未指定 authSource 选项,则要使用的身份验证数据库。如果您不包含这一内容,客户端将根据 admin 数据库对用户进行身份验证。
?<options>
可选。将连接特定选项指定为 <name>=<value> 对的查询字符串。有关这些选项的完整说明,请参阅 连接选项

要使用连接 URI,请将其作为字符串传递给 MongoClient 构造函数。在以下示例中,驱动程序使用示例连接 URI 连接到位于 localhost 的端口 27017 上的 MongoDB 实例:

using MongoDB.Driver;
// Connection URI
const string connectionUri = "mongodb://localhost:27017";
// Create a new client and connect to the server
var client = new MongoClient(connectionUri);

提示

客户端重用

由于每个 MongoClient 代表一个数据库连接池,因此大多数应用程序只需要单一 MongoClient 实例,甚至在多个请求中也是如此。要详细了解连接池在驱动程序中的工作原理,请参阅常见问题解答页面

有关创建连接字符串的更多信息,请参阅《MongoDB 手册》

您可以使用 MongoClientSettings 对象在代码中(而不是在连接 URI 中)配置连接。要使用 MongoClientSettings 对象,请创建此类的实例并将其作为参数传递给 MongoClient 构造函数。

在以下示例中,驱动程序使用 MongoClientSettings 对象连接到 localhost 的端口 27017 上的 MongoDB 实例:

using MongoDB.Driver;
// Create a MongoClientSettings object
var settings = new MongoClientSettings()
{
Scheme = ConnectionStringScheme.MongoDB,
Server = new MongoServerAddress("localhost", 27017)
};
// Create a new client and connect to the server
var client = new MongoClient(settings);

要连接到 Atlas 上的 MongoDB 部署,请创建一个客户端。通过将 MongoClientSettings 对象传递给 MongoClient 构造函数,可以创建一个使用连接字符串和其他客户端选项的客户端。

要指定您的连接 URI,请将其传递给 FromConnectionString() 方法,该方法会返回一个新的 MongoClientSettings 实例。要指定任何其他客户端选项,请设置 MongoClientSettings 对象的相关字段。

您可以将 Stable API 版本设置为客户端选项,以避免升级到新服务器版本时发生重大更改。要了解有关 Stable API 功能的更多信息,请参阅 Stable API 页面

以下代码展示了在连接到 MongoDB 部署时,如何指定连接字符串和 Stable API 客户端选项,并检查连接是否成功:

using MongoDB.Driver;
using MongoDB.Bson;
// Replace the placeholder with your Atlas connection string
const string connectionUri = "<connection string>";
var settings = MongoClientSettings.FromConnectionString(connectionUri);
// Set the ServerApi field of the settings object to Stable API version 1
settings.ServerApi = new ServerApi(ServerApiVersion.V1);
// Create a new client and connect to the server
var client = new MongoClient(settings);
// Send a ping to confirm a successful connection
try {
var result = client.GetDatabase("admin").RunCommand<BsonDocument>(new BsonDocument("ping", 1));
Console.WriteLine("Pinged your deployment. You successfully connected to MongoDB!");
} catch (Exception ex) { Console.WriteLine(ex);}

提示

按照 Atlas 驱动程序连接指南检索您的连接字符串。

要连接到副本集部署,请指定副本集节点主机名(或 IP 地址)和端口号。

如果您无法提供副本集中主机的完整列表,则可以在该副本中指定一个或多个主机,并指示驱动程序通过以下方式执行自动发现:

  • 将副本集的名称指定为 replicaSet 参数的值。

  • false 指定为 directConnection 参数的值。

  • 在副本集中指定多个主机。

在以下示例中,驱动程序使用样本连接 URI 连接到 MongoDB 副本集 sampleRS,该副本集在三个不同主机(包括 sample.host1)的端口 27017 上运行:

using MongoDB.Driver;
// Connection URI
const string connectionUri = "mongodb://sample.host1:27017/?replicaSet=sampleRS";
// Create a new client and connect to the server
var client = new MongoClient(connectionUri);

后退

连接