连接指南
本指南向您展示如何使用 Node.js 驱动连接到MongoDB Atlas 部署、MongoDB 实例或副本集。
连接URI
连接URI是驱动程序用来连接MongoDB部署的指令集。它告诉驱动程序如何连接到MongoDB以及在连接期间如何行为。以下示例显示了连接URI的各个部分。

在这个例子中,我们连接到一个具有DNS SRV记录的MongoDB Atlas部署。有关详细信息,请参阅DNS种子列表连接格式文档。该格式在部署中提供灵活性,并能够在不重新配置客户端的情况下更改轮询中的服务器。
注意
要了解如何在Atlas中检索您的连接字符串,请参阅Atlas驱动程序连接指南。
如果您正在连接到没有DNS SRV地址的实例或副本集,您必须使用mongodb
作为协议,该协议指定了标准连接字符串格式。
在协议之后,连接字符串的下一部分包含凭证,如果您使用的是基于密码的认证。将user
的值替换为您用户名,将pass
的值替换为您的密码。如果您使用不需要用户名和密码的认证机制,则省略此部分连接URI。
连接字符串的下一部分指定了您的MongoDB实例的主机名或IP地址,后面跟着端口号。在上面的示例中,我们使用sample.host
作为主机名,使用27017
作为端口号。将这些值替换为您MongoDB实例的地址。
连接字符串的最后一部分包含作为参数的连接和认证选项。在上面的示例中,我们设置了两个连接选项:maxPoolSize=20
和w=majority
。有关连接选项的更多信息,请跳转到连接选项部分。
Atlas连接示例
您必须创建一个客户端以连接到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页面。
连接到MongoDB的其他方法
如果您正在连接到不在Atlas上托管的单个MongoDB服务器实例或副本集,请参阅以下部分了解如何连接。
连接到本地机器上的MongoDB服务器
要连接到本地机器上的MongoDB部署,请完成以下步骤
重要
始终确保您的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
并连接到副本集的次级成员时,您的写入操作将失败,因为客户端没有连接到主节点。为了执行读取操作,您必须启用次级读取。有关更多信息,请参阅读取偏好选项。