Mongodb 调整猫鼬的选项

Mongodb 调整猫鼬的选项,mongodb,Mongodb,我是MongoDB新手,很难理解connect()方法中使用的不同标志,这些标志在第二个对象参数中传递 const connectDB = async() => { const conn = await mongoose.connect(process.env.MONGO_URI,{ useNewUrlParser: true, useCreateIndex:true, useFindAndModify:false, useUnifiedTopology: true

我是MongoDB新手,很难理解connect()方法中使用的不同标志,这些标志在第二个对象参数中传递

const connectDB = async() => {
    const conn = await mongoose.connect(process.env.MONGO_URI,{
        useNewUrlParser: true, useCreateIndex:true, useFindAndModify:false, useUnifiedTopology: true
    });
}

有文件可供参考

[选项]«对象»传递给MongoDB驱动程序的connect() 功能,但下面解释的4个猫鼬特定选项除外

  • [options.bufferCommands=true]«布尔»猫鼬特定选项。设置为false可在与此关联的所有模型上禁用缓冲 连接

  • [options.dbName]«String»我们要使用的数据库的名称。如果未提供,请使用连接字符串中的数据库名称

  • [options.user]«String»用于身份验证的用户名,相当于options.auth.user。保持向后兼容性

  • [options.pass]«String»验证密码,相当于options.auth.password。保持向后兼容性

  • [options.autoIndex=true]«布尔»猫鼬特定选项。设置为false可禁用所有关联模型的自动索引创建 与此相关

  • [options.useNewUrlParser=false]«布尔»默认为false。设置为true以选择加入MongoDB驱动程序的新URL解析器逻辑

  • [options.useUnifiedTopology=false]«布尔»默认为false。设置为true以选择加入MongoDB驱动程序的副本集并切分 集群监控引擎

  • [options.useCreateIndex=true]«布尔»猫鼬特定选项。如果为true,此连接将使用createIndex()而不是 通过Model.init()为自动索引生成确保索引()

  • [options.useFindAndModify=true]«布尔»默认为true。设置为false可使findOneAndUpdate()和findOneAndRemove()使用本机 findOneAndUpdate()而不是findAndModify()

  • [options.reconnecttrys=30]«Number»如果您连接到单个服务器或mongos代理(与副本集相反),则 MongoDB驱动程序将尝试重新连接每次重新连接 毫秒用于重新连接次数,然后放弃。当 驱动程序放弃,mongoose连接发出重新连接失败 事件此选项对副本集连接不起任何作用

  • [options.reconnectInterval=1000]«编号»见上文的重新连接选项

  • [options.promiseLibrary]«类»设置基础驱动程序承诺库

  • [options.poolSize=5]«Number»MongoDB驱动程序将为此连接保持打开的最大套接字数。默认情况下, 池大小为5。请记住,从MongoDB 3.4开始,只有MongoDB 一次允许每个套接字执行一个操作,因此您可能希望增加 如果您发现有一些较慢的查询阻塞速度较快,则会出现这种情况 继续进行的查询。请参阅MongoDB和Node.js中的慢速列车

  • [options.bufferMaxEntries]«Number»MongoDB驱动程序也有自己的缓冲机制,在驱动程序启动时启动 断开的。将此选项设置为0,并将bufferCommands设置为false on 如果希望数据库操作立即失败,请选择模式 当驱动程序未连接时,而不是等待 重新连接

  • [options.connectTimeoutMS=30000]«Number»MongoDB驱动程序将等待多长时间,然后才能在运行期间由于不活动而终止套接字 初始连接。默认值为30000。此选项已通过 对Node.js的socket#setTimeout()函数透明

  • [options.socketTimeoutMS=30000]«Number»MongoDB驱动程序将等待多长时间,然后由于不活动而在之后终止套接字 初始连接。套接字可能因以下任一原因而处于非活动状态: 活动或长时间运行的操作。默认设置为30000, 如果需要,您应该将其设置为最长运行时间的2-3倍 某些数据库操作的运行时间可能超过20秒。 此选项在之后传递给Node.js socket#setTimeout()函数 MongoDB驱动程序已成功完成

  • [options.family=0]«Number»透明地传递给Node.js的dns.lookup()函数。可以是0、4或6。’“4”表示使用IPv4 仅,“6”表示仅使用IPv6,“0”表示同时尝试这两种方式

“如果您使用的是最新的驱动程序,则两者都可能是错误的。”-嗯。不,把那句话再读一遍。使用最新的驱动程序时,应该清楚地显示
true
。另外,
useUnifiedTopology
可能确实针对“副本集”连接,但是确实没有理由连接到未配置为副本集的MongoDB。即使是单个节点也可以通过这种方式进行配置,因为这样可以实现更大配置(事务、变更流)的所有必要的“铃铛和哨子”,所以您根本不可能以任何其他方式进行配置。