连接指南
本指南向您展示了如何使用 .NET/C# 驱动程序连接到 MongoDB 实例或副本集部署。
连接 URI
一个 连接 URI,也称为 连接字符串,告诉驱动程序如何连接到 MongoDB 部署以及连接时的行为。
一个标准的连接字符串包括以下部分
部分 | 描述 |
---|---|
| 必需。一个前缀,用于标识这是一个标准连接格式的字符串。 |
| 可选。认证凭据。如果您包括这些凭据,客户端将使用 |
| 必需。MongoDB 运行的主机和可选端口号。如果您不包括端口号,驱动程序将使用默认端口号 |
| 可选。如果连接字符串包含 |
| 可选。一个查询字符串,指定连接特定选项为 |
要使用连接 URI,将其作为字符串传递给 MongoClient
构造函数。在以下示例中,驱动程序使用示例连接 URI 连接到本地主机上的 MongoDB 实例,端口号为 27017
using MongoDB.Driver; // Sets the connection URI const string connectionUri = "mongodb://localhost:27017"; // Creates a new client and connects to the server var client = new MongoClient(connectionUri);
提示
重用客户端
因为每个 MongoClient
代表到数据库的连接池,所以大多数应用程序只需要一个 MongoClient
实例,即使在多个请求之间也是如此。有关驱动程序中连接池如何工作的更多信息,请参阅 常见问题解答页面。
参见MongoDB 手册 了解有关创建连接字符串的更多信息。
客户端设置
您可以使用一个 MongoClientSettings
对象来在代码中配置连接,而不是在连接 URI 中。要使用 MongoClientSettings
对象,创建该类的实例,并将其作为参数传递给 MongoClient
构造函数。
在以下示例中,驱动程序使用一个 MongoClientSettings
对象连接到本地主机 localhost
的端口 27017
上的 MongoDB 实例。
using MongoDB.Driver; // Creates a MongoClientSettings object var settings = new MongoClientSettings() { Scheme = ConnectionStringScheme.MongoDB, Server = new MongoServerAddress("localhost", 27017) }; // Creates a new client and connects to the server var client = new MongoClient(settings);
其他连接目标
连接到 Atlas
要连接到 Atlas 上的 MongoDB 部署,创建一个客户端。您可以通过将一个 MongoClientSettings
对象传递给 MongoClient
构造函数来创建使用您的连接字符串和其他客户端选项的客户端。
要指定您的连接 URI,请将其传递给 FromConnectionString()
方法,该方法返回一个新的 MongoClientSettings
实例。要指定任何其他客户端选项,设置 MongoClientSettings
对象的相关字段。
您可以将稳定的 API 版本作为客户端选项设置,以避免在升级到新服务器版本时出现破坏性更改。有关稳定 API 功能的更多信息,请参阅稳定 API 页面。
以下代码演示了如何在连接到 MongoDB 部署时指定连接字符串和稳定的 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); // Sets the ServerApi field of the settings object to Stable API version 1 settings.ServerApi = new ServerApi(ServerApiVersion.V1); // Creates a new client and connects to the server var client = new MongoClient(settings); // Sends 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
,该副本集运行在三个不同主机的 27017
端口上,包括 sample.host1
using MongoDB.Driver; // Sets the connection URI than includes the replica set name const string connectionUri = "mongodb://sample.host1:27017/?replicaSet=sampleRS"; // Creates a new client and connects to the server var client = new MongoClient(connectionUri);