Mongodb 无法通过MongoAPI或Azure Portal在CosmosDB上找到();“数据资源管理器”;,只有通过documentDB API它才能工作

Mongodb 无法通过MongoAPI或Azure Portal在CosmosDB上找到();“数据资源管理器”;,只有通过documentDB API它才能工作,mongodb,azure-cosmosdb,Mongodb,Azure Cosmosdb,我通过Robo3t和Azure门户从MongoAPI获得500个内部服务器错误 我已经多次删除了我的数据库和集合,插入了一些示例记录,并尝试通过MongoDB API在Azure门户的“Data Explorer”或Robo3t中查看,但我完全无法查看所有记录。我能够查看记录的唯一方法是直接从documentDB.query()中选择* 奇怪的是,通过Robo3t,我可以完美地连接、查看统计数据、插入记录和查看插入的特定记录(来自Robo3t),但完全无法查看所有记录或使用.find({})。几

我通过Robo3t和Azure门户从MongoAPI获得500个内部服务器错误

我已经多次删除了我的数据库和集合,插入了一些示例记录,并尝试通过MongoDB API在Azure门户的“Data Explorer”或Robo3t中查看,但我完全无法查看所有记录。我能够查看记录的唯一方法是直接从documentDB.query()中选择*

奇怪的是,通过Robo3t,我可以完美地连接、查看统计数据、插入记录和查看插入的特定记录(来自Robo3t),但完全无法查看所有记录或使用.find({})。几天前,这一切都很顺利。我已经在多个网络上的多个设备上尝试过

文档数据库主机通过443端口连接,而Robo3t通过10255端口连接。我无法以不同的方式连接到我注意到的任何一个API

我通常通过documentDB api插入

以下是一些屏幕截图:


问题就是您提到的,您正在使用DocumentDB API将文档插入Mongo API帐户。Mongo API帐户仅用于启用Mongo的客户端/SDK

门户和第三方应用程序失败,因为它们使用MongoDB协议读取文档,您通过DocumentDB API存储的这些文档不具有所需的MongoDB属性(例如,“\u id”)。当您使用Mongo客户端插入文档时,客户端将确保不丢失任何必需的MongoDB属性(如果是“\u id”标识符,则自动生成它)

运行
find()
命令时,驱动程序遇到的文档不符合所需的MongoDB属性(使用DocumentDB API插入的属性)并中止

如果要使用DocumentDB API进行交互,请使用SQL帐户。如果应用程序使用MongoDB协议,并且需要使用Mongo帐户,请使用启用Mongo的客户端存储文档

类似的情况也在发生


要解决您的问题,请重新创建集合,并仅使用Mongo SDK使用Mongo API客户端/应用程序存储文档。

一个小小的更正:重新创建集合没有帮助。需要是一个新的Cosmos DB帐户,使用MongoDB API(收集级别未选择API)。谢谢Matias。我发现documentdb的文档更好,在与DB交互时似乎有更多的功能,但感觉Mongo API的查询功能和易用性要好得多,更不用说所有新的开发和更新似乎都是针对Mongo API的。我想我可以像其他地方建议的那样使用这两种方法,但我想这毕竟是不可能的。David,我的意思是,创建一个新的空集合(在Mongo API帐户中)来清除损坏的数据。然后仅使用Mongo API存储文档。@MatiasQuaranta您是否知道此问题是否已解决?无法解决。Mongo API帐户用于Mongo驱动程序/客户端。如果需要从SQL SDK客户端(或使用SQL API的其他Azure服务)与Cosmos DB帐户交互,请创建SQL API帐户。通过SQL API将数据存储到Mongo帐户将使数据只能通过SQL API读取,任何通过Mongo API访问数据的尝试都将失败,因为它不是Mongo wire协议的有效数据。