Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更新mongodb依赖项后出现警告_Mongodb_Mongoose - Fatal编程技术网

更新mongodb依赖项后出现警告

更新mongodb依赖项后出现警告,mongodb,mongoose,Mongodb,Mongoose,我已经安装了winston mongodb的最新版本。我注意到来自winston mongodb的mongodb包的mongodb版本已从1.6.6版本更新为2.0.7版本。更新后,我收到此警告: 服务器/replset/mongos选项已弃用,它们的所有选项 在选项对象的顶层支持 [poolSize、ssl、sslValidate、sslCA、sslCert、sslKey、sslPass、autoReconnect、noDelay、keepAlive、connectTimeoutMS、sock

我已经安装了winston mongodb的最新版本。我注意到来自winston mongodb的
mongodb
包的
mongodb
版本已从
1.6.6
版本更新为
2.0.7
版本。更新后,我收到此
警告

服务器/replset/mongos选项已弃用,它们的所有选项 在选项对象的顶层支持 [poolSize、ssl、sslValidate、sslCA、sslCert、sslKey、sslPass、autoReconnect、noDelay、keepAlive、connectTimeoutMS、socketTimeoutMS、Reconnectries、reconnectInterval、ha、haInterval、ReplicateSet、Secondary acceptableLatencyMS、acceptableLatencyMS、connectWithNoPrimary、authSource、w、WTTimeout、j、forceServerObjectId、Serialized函数、ignoreUndefined、raw、promoteLongs、bufferMaxEntries、readPreference、pkFactory、promiseLibrary、readConcern、maxStalenessSeconds、loggerLevel、logger、promoteValues、promoteBuffers、promoteLongs、domainsEnabled、keepAliveInitialDelay、checkServerIdentity、validateOptions]


我怎样才能解决这个问题?有什么想法吗?

我也注意到了这一点。
这似乎是一个非致命的错误,因为这个问题已经结束。请参阅:。 我测试了: mongodb@2.2.24-在您报告时发出警告!!! mongodb@2.2.23-死于错误。 mongodb@2.2.22-无警告,工作正常

因此,我建议现在安装verson 2.2.22,看看会不会出现问题。这就是我所做的——因为我不喜欢看到警告。

我希望这有帮助。

根据错误消息

服务器/replset/mongos选项已弃用,它们的所有选项都在options对象的顶层受支持

因此,问题的解决方案是简单地将设置选项从服务器、replset、socketOptions、mongos和任何其他层次结构选项移动到对象的顶层

mongoose.connect( 'mongodb://localhost/db',
  {
    useMongoClient: true,
    server: {
            ssl: true,
            socketOptions: {
                keepAlive: 300000,
                connectTimeoutMS: 30000
            },
            auto_reconnect: true,
            reconnectTries: 300000,
            reconnectInterval: 5000
        },
    promiseLibrary: global.Promise
  }
);

change it to;

mongoose.connect( 'mongodb://localhost/db',
  {
    useMongoClient: true,
    poolSize: 2,
    ssl: true,
    keepAlive: 300000,
    connectTimeoutMS: 30000,
    autoReconnect: true,
    reconnectTries: 300000,
    reconnectInterval: 5000,
    promiseLibrary: global.Promise
  }
);
希望有帮助!
谢谢,

如果从4.x升级到5.x,并且没有使用4.x中的useMongoClient选项,您可能会看到以下弃用警告:

服务器/replset/mongos选项已弃用,它们的所有选项都在options对象的顶层受支持

在旧版本的MongoDB驱动程序中,您必须为服务器连接、副本集连接和mongos连接指定不同的选项:

    mongoose.connect(myUri, {
  server: {
    socketOptions: {
      socketTimeoutMS: 0,
      keepAlive: true
    },
    reconnectTries: 30
  },
  replset: {
    socketOptions: {
      socketTimeoutMS: 0,
      keepAlive: true
    },
    reconnectTries: 30
  },
  mongos: {
    socketOptions: {
      socketTimeoutMS: 0,
      keepAlive: true
    },
    reconnectTries: 30
  }
});
在MongooseV5.x中,您可以在顶层声明这些选项,而无需所有额外的嵌套

// Equivalent to the above code
mongoose.connect(myUri, {
  socketTimeoutMS: 0,
  keepAlive: true,
  reconnectTries: 30
});
资料来源:正式文件