如何连接到适用于 MongoDB 的 Azure CosmosDB 模拟器?

hal*_*ing 8 azure mongodb azure-cosmosdb azure-cosmosdb-mongoapi

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

{ 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)]: {} }
Run Code Online (Sandbox Code Playgroud)

我已从Microsoft 下载中心安装了最新版本的模拟器(当前为 v2.4.5),并按照Microsoft 文档中的安装说明进行操作

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

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

hal*_*ing 17

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

以下对我有用:

cd "C:\Program Files\Azure Cosmos DB Emulator"
Run Code Online (Sandbox Code Playgroud)

然后

.\CosmosDB.Emulator.exe /EnableMongoDbEndpoint
Run Code Online (Sandbox Code Playgroud)

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