📜  { use UnifiedTopology: true } - Javascript (1)

📅  最后修改于: 2023-12-03 15:35:50.563000             🧑  作者: Mango

使用 UnifiedTopology: true 介绍 - Javascript

在 MongoDB 的 Node.js 驱动程序中,UnifiedTopology: true 选项是用于新的数据库连接选项。它的作用是替换掉过时的 useNewUrlParseruseUnifiedTopology 选项,并在一些情况下提供更好的性能。在这篇文章中,我们将会对 UnifiedTopology 的使用进行介绍。

MongoDB 驱动程序的版本

首先,你需要确认你使用的是什么版本的 MongoDB Node.js 驱动程序。 在3.1.0版本以后,useUnifiedTopologyuseNewUrlParser 将会被统一替换为 UnifiedTopology: true

如果你已经在使用 3.1.0 版本及以上,那么你将无需再使用这两个选项,只需要将 UnifiedTopology: true 作为新的选项即可。这将简化数据库连接字符串的处理。

什么是 UnifiedTopology?

UnifiedTopology是连接MongoDB的驱动选项之一。它指定了连接的拓扑结构,即连接客户端到mongoDB服务器的方式。

具体而言,UnifiedTopology选项将使用多个连接到不同mongod实例的扫描连接来扫描mongod实例组,并将所有副本集或分片集群的mongod实例纳入到拓扑结构中。如果您使用了此选项,就可以在分片集群和副本集群之间轻松切换,而无需更改连接字符串或代码。

使用 UnifiedTopology: true的情况

UnifiedTopology: true 不仅仅提供了更好的性能和更简单的连接字符串处理方法,还支持以下新的 MongoDB 功能:

  • 身份验证和授权相关的一些新特性
  • MongoDB 4.0 中引入的新事务
  • MongoDB 4.2 中引入的新变更流和全文搜索
代码示例

在连接MongoDB的时候,只需要在options对象中设置UnifiedTopology: true选项即可。以下是一个示例:

const MongoClient = require('mongodb').MongoClient;
const uri = "mongodb+srv://<username>:<password>@<cluster>.mongodb.net/test?retryWrites=true&w=majority";
const client = new MongoClient(uri, {useNewUrlParser: true, useUnifiedTopology: true});

async function run() {
  try {
    await client.connect();
    console.log("Connected successfully to server");
  } finally {
    await client.close();
  }
}

run().catch(console.dir);
总结

使用 UnifiedTopology: true 选项,能够让你的 MongoDB 数据库连接更加稳定和高效。它支持多个连接到不同mongod实例的扫描连接来扫描mongod实例组,并将所有副本集或分片集群的mongod实例纳入到拓扑结构中。同时它也为你提供了支持 MongoDB 4.0 及以上版本所引入的新功能的连接选项。