如何将 Azure CosmosDB 模拟器与 MongoDB API 一起使用?
How do I use the Azure CosmosDB Emulator with the MongoDB API?
我使用 Microsoft Azure Comos 模拟器 2.11.11.0 版。我用命令行启动它:
CosmosDB.Emulator.exe /EnableMongoDbEndpoint=3.6
如果我将我的应用程序连接到 MongoDB 端点,我会收到以下错误:
com.mongodb.MongoCommandException: Command failed with error 1 (InternalError):
'[ActivityId=64bdb726-f138-4025-8d5b-ca23bbda384c] Internal error.' on server localhost:10255.
The full response is {"ok": 0.0, "errmsg": "[ActivityId=64bdb726-f138-4025-8d5b-ca23
bbda384c] Internal error.", "code": 1, "codeName": "InternalError"}
这个错误是什么意思?我还需要做什么才能使用 MongoDB API?
第一个写入命令失败:
'{"createIndexes": "fs.files", "indexes": [{"key": {"filename": 1}, "name": "filename_1", "ns": "admin.fs.files"}], "$db": "admin", "lsid": {"id": {"$binary": {"base64": "lFHKYPJ0Rq+ip587pl8YPQ==", "subType": "04"}}}, "$readPreference": {"mode
": "primaryPreferred"}}'
它是从简单的 Java 行生成的:
collection.createIndex( new BasicDBObject( FILENAME, 1 ) );
PS:对于 MongoDb 端点 3.2,这是有效的。肯定是模拟器有问题
使用模拟器 Mongo API 3.6 必须显式创建集合。使用原始 MongoDB 和 Mongo API 端点 3.2 如果创建索引或保存数据,将间接创建集合。
我使用 Microsoft Azure Comos 模拟器 2.11.11.0 版。我用命令行启动它:
CosmosDB.Emulator.exe /EnableMongoDbEndpoint=3.6
如果我将我的应用程序连接到 MongoDB 端点,我会收到以下错误:
com.mongodb.MongoCommandException: Command failed with error 1 (InternalError):
'[ActivityId=64bdb726-f138-4025-8d5b-ca23bbda384c] Internal error.' on server localhost:10255.
The full response is {"ok": 0.0, "errmsg": "[ActivityId=64bdb726-f138-4025-8d5b-ca23
bbda384c] Internal error.", "code": 1, "codeName": "InternalError"}
这个错误是什么意思?我还需要做什么才能使用 MongoDB API?
第一个写入命令失败:
'{"createIndexes": "fs.files", "indexes": [{"key": {"filename": 1}, "name": "filename_1", "ns": "admin.fs.files"}], "$db": "admin", "lsid": {"id": {"$binary": {"base64": "lFHKYPJ0Rq+ip587pl8YPQ==", "subType": "04"}}}, "$readPreference": {"mode
": "primaryPreferred"}}'
它是从简单的 Java 行生成的:
collection.createIndex( new BasicDBObject( FILENAME, 1 ) );
PS:对于 MongoDb 端点 3.2,这是有效的。肯定是模拟器有问题
使用模拟器 Mongo API 3.6 必须显式创建集合。使用原始 MongoDB 和 Mongo API 端点 3.2 如果创建索引或保存数据,将间接创建集合。