文档菜单
文档首页
/ / /
Node.js 驱动
/ /

连接指南

本页内容

  • 连接 URI
  • Atlas 连接示例
  • 其他连接 MongoDB 的方法
  • 连接到本地机器上的 MongoDB 服务器
  • 连接到副本集
  • 直接连接

本指南向您展示如何使用 Node.js 驱动连接到MongoDB Atlas 部署、MongoDB 实例或副本集。

连接URI是驱动程序用来连接MongoDB部署的指令集。它告诉驱动程序如何连接到MongoDB以及在连接期间如何行为。以下示例显示了连接URI的各个部分。

Each part of the connection string

在这个例子中,我们连接到一个具有DNS SRV记录的MongoDB Atlas部署。有关详细信息,请参阅DNS种子列表连接格式文档。该格式在部署中提供灵活性,并能够在不重新配置客户端的情况下更改轮询中的服务器。

注意

要了解如何在Atlas中检索您的连接字符串,请参阅Atlas驱动程序连接指南。

如果您正在连接到没有DNS SRV地址的实例或副本集,您必须使用mongodb作为协议,该协议指定了标准连接字符串格式。

在协议之后,连接字符串的下一部分包含凭证,如果您使用的是基于密码的认证。将user的值替换为您用户名,将pass的值替换为您的密码。如果您使用不需要用户名和密码的认证机制,则省略此部分连接URI。

连接字符串的下一部分指定了您的MongoDB实例的主机名或IP地址,后面跟着端口号。在上面的示例中,我们使用sample.host作为主机名,使用27017作为端口号。将这些值替换为您MongoDB实例的地址。

连接字符串的最后一部分包含作为参数的连接和认证选项。在上面的示例中,我们设置了两个连接选项:maxPoolSize=20w=majority。有关连接选项的更多信息,请跳转到连接选项部分。

您必须创建一个客户端以连接到Atlas上的MongoDB部署。要创建客户端,构造一个包含您的URI和一个MongoClientOptions对象的MongoClient实例。

提示

重用您的客户端

由于每个MongoClient都代表到数据库的连接池,因此大多数应用程序只需要一个MongoClient实例,即使在多个请求之间也是如此。有关驱动程序中连接池的工作原理的更多信息,请参阅常见问题解答页面

在您的MongoClientOptions对象中使用serverApi选项以启用稳定API功能,该功能强制服务器以与指定API版本兼容的行为运行操作。

以下代码演示了如何在连接到Atlas上的MongoDB部署时指定连接字符串和稳定API客户端选项,并验证连接是否成功

const { MongoClient, ServerApiVersion } = require("mongodb");
// Replace the placeholder with your Atlas connection string
const uri = "<connection string>";
// Create a MongoClient with a MongoClientOptions object to set the Stable API version
const client = new MongoClient(uri, {
serverApi: {
version: ServerApiVersion.v1,
strict: true,
deprecationErrors: true,
}
}
);
async function run() {
try {
// Connect the client to the server (optional starting in v4.7)
await client.connect();
// Send a ping to confirm a successful connection
await client.db("admin").command({ ping: 1 });
console.log("Pinged your deployment. You successfully connected to MongoDB!");
} finally {
// Ensures that the client will close when you finish/error
await client.close();
}
}
run().catch(console.dir);

注意

当使用客户端在MongoDB部署上执行CRUD操作时,Node.js驱动程序会自动调用MongoClient.connect()方法。如果您想验证连接是否成功,请显式调用MongoClient.connect()方法。

有关稳定API功能的更多信息,请参阅稳定API页面

如果您正在连接到不在Atlas上托管的单个MongoDB服务器实例或副本集,请参阅以下部分了解如何连接。

要连接到本地机器上的MongoDB部署,请完成以下步骤

  1. 下载MongoDB服务器的社区版企业版

  2. 安装和配置 MongoDB服务器。

  3. 启动服务器。

重要

始终确保您的MongoDB服务器免受恶意攻击。请参阅我们的安全检查清单,了解安全建议列表。

在成功启动您的MongoDB服务器后,在驱动程序连接代码中指定您的连接字符串。

如果您的MongoDB服务器在本地运行,您可以使用以下连接字符串

mongodb://localhost:<port>

在此连接字符串中,<端口>是您配置服务器监听传入连接的端口号。

如果您想指定不同的主机名或IP地址,请参阅我们关于连接字符串的服务器手册条目。

要测试您是否可以连接到您的服务器,请将连接字符串替换为连接到MongoDB代码示例,并运行它。

一个MongoDB副本集部署是由一组连接的实例组成的,这些实例存储相同的数据集。这种实例配置提供了数据冗余和高数据可用性。

要连接到副本集部署,指定每个实例的主机名和端口号,用逗号分隔,并将副本集名称作为连接字符串中replicaSet参数的值。

mongodb://host1:27017,host2:27017,host3:27017/?replicaSet=myRs

在建立连接时,驱动程序默认执行以下操作

  • 给定任何一个成员的地址时,发现所有副本集成员。

  • 将操作调度到适当的成员,例如对主节点进行写入。

提示

指定所有主机

为确保在一个主机不可用时的连接性,连接到副本集时提供完整的主机列表。

要强制您的操作在连接URI中指定的主机上运行,您可以在连接选项中指定directConnection。如果指定此选项,您必须使用标准的连接URI格式。当指定此选项时,驱动程序不接受DNS种子列表连接格式(SRV)。

当指定directConnection并连接到副本集的次级成员时,您的写入操作将失败,因为客户端没有连接到主节点。为了执行读取操作,您必须启用次级读取。有关更多信息,请参阅读取偏好选项

返回

连接