环回MongoError:未授权在heroku_xxxx.role上进行查询

我正在为我的服务器使用Loopback和以下设置:

"loopback": "^2.36.0", "loopback-boot": "^2.23.0", "loopback-component-explorer": "^2.4.0", "loopback-component-storage": "^1.9.1", "loopback-connector-mongodb": "^1.17.0", "loopback-datasource-juggler": "^2.53.0", 

它连接到mlab.com上的mongoDB

我的主要查询包括一个模型和它的依赖关系,例如:

 GET /api/course/1234 PARAMS filter = { include: [ {relation:'students'}, {relation:'documents'}, {relation:'modules'} ] } 

99.9%的时间,它完美的作品。 但是当我开始在平台上进行更多的活动时,在服务器开始崩溃之前,我开始出现这个错误。 这是错误:

 MongoError: not authorized for query on db.student at Function.MongoError.create (/app/node_modules/mongodb-core/lib/error.js:31:11) at queryCallback (/app/node_modules/mongodb-core/lib/cursor.js:182:34) at /app/node_modules/continuation-local-storage/context.js:76:17 at bound (domain.js:287:14) at runBound (domain.js:300:12) at Callbacks.emit (/app/node_modules/mongodb-core/lib/topologies/server.js:119:3) at null.messageHandler (/app/node_modules/mongodb-core/lib/topologies/server.js:397:23) at Socket.<anonymous> (/app/node_modules/mongodb-core/lib/connection/connection.js:302:22) 

有时它在db.students ,有时它在db.documents …似乎是随机的,我不知道如何解决它。

要连接到数据库,我使用mlab提供的URI。 看起来像这样:

 mongodb://<dbuser>:<dbpassword>@<dbpath>/<dbname> 

有和没有?&authMode=scram-sha1&rm.tcpNoDelay=true ,但仍然出现错误。

任何想法发生了什么,以及如何解决这个问题?

__编辑:我已经尝试了几个不同的版本,没有运气。 最新的是:

 "loopback": "^2.22.0", "loopback-boot": "^2.6.5", "loopback-component-explorer": "^2.4.0", "loopback-component-storage": "^1.9.1", "loopback-connector-mongodb": "^1.17.0", "loopback-datasource-juggler": "^2.39.0", 

__编辑:我发现这篇文章在Github: https : //github.com/strongloop/loopback-connector-mongodb/issues/251这似乎是同样的错误,我跟着别人说,通过更改mongodb解决他们的问题@ 2.1.18但仍然没有运气…

解决scheme是将Loopback更新到最新版本。 Loopback库包含MongoDB Node驱动程序作为依赖项,并使用驱动程序连接到MongoDB数据库。

以前版本的MongoDB节点驱动程序具有已知的连接/身份validation问题。 通过更新到最新的Loopback版本,安装了更新版本的节点驱动程序。