【问题标题】:How do I connect to the Azure CosmosDB Emulator for MongoDB?如何连接到 Azure CosmosDB Emulator for MongoDB?
【发布时间】:2019-08-10 02:44:36
【问题描述】:

尝试使用 MongoDB 连接字符串 mongodb://localhost:C2y6yDjf5%2FR%2Bob0N8A7Cgv30VRDJIWEHLM%2B4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw%2FJw%3D%3D@localhost:10255/admin?ssl=true 连接到 Azure CosmosDB 的本地模拟器时,我收到以下错误:

{ MongoNetworkError: failed to connect to server [localhost:10255] on first connect [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:10255]
    at Pool.<anonymous> (D:\github\myapp\node_modules\mongodb-core\lib\topologies\server.js:431:11)
    at Pool.emit (events.js:189:13)
    at connect (D:\github\myapp\node_modules\mongodb-core\lib\connection\pool.js:557:14)
    at makeConnection (D:\github\myapp\node_modules\mongodb-core\lib\connection\connect.js:39:11)
    at callback (D:\github\myapp\node_modules\mongodb-core\lib\connection\connect.js:261:5)
    at TLSSocket.err (D:\github\myapp\node_modules\mongodb-core\lib\connection\connect.js:286:7)
    at Object.onceWrapper (events.js:277:13)
    at TLSSocket.emit (events.js:189:13)
    at emitErrorNT (internal/streams/destroy.js:82:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:50:3)
    at process._tickCallback (internal/process/next_tick.js:63:19)
  name: 'MongoNetworkError',
  errorLabels: [ 'TransientTransactionError' ],
  [Symbol(mongoErrorContextSymbol)]: {} }

我已经从Microsoft Download Center安装了最新版本的模拟器(目前是v2.4.5),并按照Microsoft docs的安装说明进行操作

我尝试使用 Mongoose 连接 Node.js(与 Azure 云配置完美配合),并使用 VS Code Azure CosmosDB 扩展。两者都产生相同的错误。

连接到本地模拟器的正确方法是什么?

【问题讨论】:

  • 你启动了本地的mongo db了吗?
  • 是的,我从命令行成功运行了C:\Program Files\MongoDB\Server\3.6\bin\mongod.exe(它显示“正在等待端口 27017 上的连接”)。但我仍然遇到 mongo 网络错误,即使将连接字符串中的端口更新为 27017 并将localhost 更改为mongodb
  • 您不需要将localhost 设置为mongodb。只需在连接字符串中指定localhost:27017
  • 感谢您的回复。不幸的是,使用mongodb://localhost:C2y6yDjf5%2FR%2Bob0N8A7Cgv30VRDJIWEHLM%2B4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw%2FJw%3D%3D@localhost:27017/admin?ssl=true 仍然不起作用

标签: mongodb azure azure-cosmosdb azure-cosmosdb-mongoapi


【解决方案1】:

原来我需要从命令行运行模拟器并启用 mongodb 端点。无需单独运行 MongoDB。

以下内容对我有用:

cd "C:\Program Files\Azure Cosmos DB Emulator"

然后

.\CosmosDB.Emulator.exe /EnableMongoDbEndpoint

运行这些命令后,我能够使用 Azure Emulator for MongoDB 提供的连接字符串,并成功连接并读取/写入本地数据库。

【讨论】:

  • 当前版本的参数是“/EnableMongoDbEndpoint=3.6”。 old 参数启动 MongoDB 的旧版本 3.2。
猜你喜欢
  • 2019-08-26
  • 1970-01-01
  • 2018-05-07
  • 1970-01-01
  • 2019-07-11
  • 2019-06-29
  • 1970-01-01
  • 1970-01-01
  • 2015-08-29
相关资源
最近更新 更多