Docs 菜单
Docs 主页
/ / /
Node.js 驱动程序
/

创建 MongoClient

要连接到 MongoDB 部署,您需要满足两个条件:

  • 连接 URI(也称为连接字符串),用于告知 Node.js 驾驶员要连接到哪个 MongoDB 部署。

  • MongoClient对象,该对象创建与MongoDB 部署的连接并对其执行操作。

您还可以使用 MongoClientOptions 自定义 Node.js驾驶员在连接到MongoDB时的行为方式。

本指南向您介绍如何创建连接string并使用 MongoClient 对象连接到MongoDB 。

标准连接string包括以下组件:

组件
说明

mongodb://

必需。将其标识为标准连接格式中字符串的前缀。

username:password

可选。身份验证凭证。如果包含这些内容,客户端将根据 authSource 中指定的数据库对用户进行身份验证。有关 authSource 连接选项的更多信息,请参阅《连接故障排除指南》中的验证用户是否在身份验证数据库中

host[:port]

必需。 运行 MongoDB 的主机和可选端口号。 如果不包含端口号,驱动程序将使用默认端口27017

/defaultauthdb

可选。如果连接字符串包含 username:password@身份验证凭证但不包含 authSource 选项,则要使用的身份验证数据库。 当您不带参数调用 client.db() 时,这就是使用的数据库。如果不包含此组件,客户端将根据 admin数据库对用户进行身份验证。

?<options>

可选。 一个查询string ,它将特定于连接的选项指定为 <name>=<value> 对。 有关这些选项的完整说明,请参阅指定连接选项

有关创建连接string 的更多信息,请参阅 MongoDB Server文档中的 连接字符串 。

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

提示

客户端重用

由于每个 MongoClient 代表一个数据库连接池,因此大多数应用程序只需要一个 MongoClient实例,甚至在多个请求中也是如此。要详细学习;了解连接池在驾驶员中的工作原理,请参阅连接池页面。

使用 MongoClientOptions 对象中的 serverApi 选项可启用 Stable API 功能,这会强制服务器运行其中行为与指定 API 版本兼容的操作。

以下代码展示了在连接到 Atlas 上的 MongoDB 部署时,如何指定连接字符串和 Stable 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() 方法。

要了解有关 Stable API 功能的更多信息,请参阅 Stable API 页面

当您使用同一 MongoClient实例同时运行多个MongoDB操作时,缓慢的操作可能会导致其他操作延迟。慢速操作会占用与MongoDB的连接,这可能会导致其他操作等待另一个连接可用。

如果怀疑是缓慢的 MongoDB 操作导致了延迟,可以使用以下方法检查所有进行中操作的性能:

  • 在部署中启用数据库分析器。 要了解更多信息,请参阅 手册中的 数据库分析器 MongoDB Server。

  • 运行 db.currentOp() MongoDB Shell 命令。如需了解更多信息,请参阅“服务器手册”中的 db.currentOp() 文档。

  • 启用连接池监控。要学习;了解更多信息,请参阅连接池事件。

确定哪些操作导致延迟后,请尝试提高这些操作的性能。 阅读《MongoDB 性能最佳实践指南》,了解可能的解决方案。

若在实施性能最佳实践后仍出现延迟,则可修改连接设置以增大连接池大小。连接池是指驱动程序随时进行维护的与服务器的一组连接。

要指定连接池的最大大小,可以在 MongoClient 实例的连接选项中设置 maxPoolSize 选项。maxPoolSize 的默认值为 100。如果正在使用的服务器连接数达到 maxPoolSize,则发送到服务器的下一个操作将暂停,直到与驱动程序的连接可用。以下代码在创建新的 MongoClient 时将 maxPoolSize 设置为 150

const client = new MongoClient(uri, { maxPoolSize: 150 });

提示

要学习;了解有关连接池化的更多信息,请参阅“连接池概述”页面中的“连接池”部分。

有关使用 Node.js驾驶员创建 MongoClient对象的更多信息,请参阅以下API文档:

后退

连接

在此页面上