回送-无法通过回送使用mongodb + srv协议连接到Mongo DB Atlas

时间:2019-08-22 11:53:46

标签: node.js mongodb loopbackjs mongodb-atlas

无法使用mongodb + srv协议连接到Mongo DB Atlas。 在尝试查询一些数据时- MongoError:无法在Atlas中对管理员进行原始查询

我在datasource.json中尝试过的连接属性

mongoDb: {
connector: 'mongodb',
name: 'mongoDb',
url:"mongodb+srv://#username:#password@cluster0-kvw6a.mongodb.net/test?retryWrites=true&w=majority"
}

尝试查询一些数据时-出现此错误

Unhandled error for request GET /api/Customers/getProfile?access_token=cMGG6C8fB8el0vbchpAzeOoTpH0N7Kf9va4b5k9Z6GrNAwgh4AtqQKlRYOyiWtsB: MongoError: cannot do
raw queries on admin in atlas
at Function.MongoError.create (C:\Users\User\Documents\GitHub\maharah\customer_server\node_modules\mongodb-core\lib\error.js:31:11)
at queryCallback (C:\Users\User\Documents\GitHub\maharah\customer_server\node_modules\mongodb-core\lib\cursor.js:212:36)
at C:\Users\User\Documents\GitHub\maharah\customer_server\node_modules\mongodb-core\lib\connection\pool.js:469:18
at process._tickCallback (internal/process/next_tick.js:61:11)

我在datasource.json中尝试过的连接属性

mongoDb: {
connector: 'mongodb',
name: 'mongoDb',
url:"mongodb+srv://#username:#password@cluster0-kvw6a.mongodb.net/test?
retryWrites=true&w=majority"
}

1 个答案:

答案 0 :(得分:0)

我们已在今年4月改进了对mongodb+srv协议的支持,请参见PR #497。您需要使用loopback-connector-mongodb4.2.0或更高版本。

引用README.md#using-the-mongodbsrv-protocol

MongoDB支持一种名为mongodb+srv的协议,用于连接副本集,而不必提供副本集中每个服务器的主机名。 要使用mongodb+srv作为协议,请将datasource.json中的protocol连接属性设置为mongodb+srv。例如:

"mydb": {
  "host": "myserver",
  "database": "test",
  "protocol": "mongodb+srv",
  "connector": "mongodb"
}

注意:使用mongodb+srv协议时未指定端口,如果指定了端口,则将忽略该端口。