'管理'当我使用mongoose连接到MongoDB 3.6时,$ db总是加载

时间:2018-01-24 22:57:16

标签: node.js mongodb mongoose

我正在使用mongoose将我的节点项目升级到MongoDB 3.6。 (我只是NPM安装了最新版本的mongodb和mongoose,mongodb:3.0.1和mongoose:5.0.1)。

无论我使用我的连接字符串传递的数据库名称,每当我运行一个曾经用于我的项目的查询时 例如

configModel.find({type: 'settings'}, function (err, data) {...})

我现在收到授权错误" MongoError:管理员未授权执行命令... $ db:' admin'"

这是我目前正在使用的连接功能。我也尝试过使用mongoose.createConnection,结果相同。

var options = {
  autoReconnect: true,
  reconnectTries: Number.MAX_VALUE,
  poolSize: 10
};

mongoose.connect(connectionString, options, function(err, db){
  ...
});

connectionString的格式为:

mongodb+srv://<USER>:<PASSWORD>@[atlas.mongo].mongodb.net/<DATABASE_NAME> 

这也给了我相同的结果

mongodb+srv://<USER>:<PASSWORD>@[atlas.mongo].mongodb.net/<DATABASE_NAME>?authSource=admin

我可以使用Studio 3T连接和查询我的数据库,上面有任何一个连接字符串,所以我觉得mongoose出了问题。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

刚刚读到mongodb for node将在版本3.0.2中对此进行修复。 link to Jira thread