我是Cosmos DB的新手,所以对于初学者我创建了一个基于MongoDB的实例。然后我想添加一个文档,就像“Hello World”测试一样。我正在使用自制的iOS应用程序,它使用GitHub的官方Azure.iOS库。
一旦我在AzureData上运行“create”命令(使用正确的集合id设置),框架就会在响应中返回一个带有资源ID等的“成功”。但是,一旦我使用外部工具,如Robo3T或mongo shell,给定的集合被认为是空的,或者返回此错误:
{"code":400,"body":"Command find failed: Unknown server error occurred when processing this request.."}
然而,与DB的连接是成功的,因为我可以显示收集统计信息等。
现在,如果我再次打开我的应用程序并通过Azure.iOS框架查询收集文档,它会返回我刚刚保存的结果。这让我感到有些困惑。我是否错过了在应用程序中做某事,或者所有MongoDB工具都无法列出文档?该框架的文档相当稀疏,所以任何帮助将不胜感激。
实际上,发生在我身上的问题很难调试。由于错误消息不会告诉任何事情。
我的Cosmos DB正在使用MongoDB后端,它似乎与提到的Azure.iOS框架一起产生问题。
这个问题在这里进一步描述:Cosmos Mongodb query fails but azure storage explorer works fine?
TL; DR发生的事情是iOS框架没有创建MongoDB所必需的“_id”,导致数据损坏。我不得不从MongoDB切换到SQL后端。这解决了我的问题,现在一切正常。