在Azure CosmosDB Portal中获取文档页面时出错

时间:2019-02-28 06:34:21

标签: mongodb azure asp.net-core azure-cosmosdb

所以我正在使用Microsoft的Microsoft.Azure.DocumentDB.Core api从.Net Core应用程序连接到Cosmos DB。

一切正常,因为我可以创建,编辑和获取文档,以及创建新的数据库或集合。如果使用DocumentDB.Core api创建数据库或集合,则可以在Azure门户中看到它们。但是,当我创建文档时,看不到它们。每当我尝试加载文档时,都会多次出现此错误,该错误次数等于我拥有的文档数。

Error while fetching page of documents {"code":400,"body":"Command find failed: Unknown server error occurred when processing this request.."}

我知道我已有记录,因为如果保存ID,就可以恢复创建,然后可以使用DocumentDB.Core api进行查找。

这是我要传递的模型:

public class Api
{
    public Api()
    {
        Client = new ExpandoObject();
    }

    [JsonProperty(PropertyName = "id")]
    public string Id { get; set; }


    public ExpandoObject Client { get; set; }

}

现在,在切换到DocumentDB.Core之前,我正在使用MongoDB.Driver,这是我的模型:

public class Api
{
    public Api()
    {
        Client = new ExpandoObject();
    }

    [BsonId]
    [BsonRepresentation(BsonType.ObjectId)]
    public string Id { get; set; }


    [BsonElement("client")]
    public ExpandoObject Client { get; set; }

}

使用MongoDB.Driver和上面的模型,我可以在Azure门户中查看我的数据。

我是否有理由无法使用Microsoft自己的工具在Azure CosmosDB门户中看到数据?我想念财产吗?我唯一不同的是,使用MongoDB.Drive,我的ID在创建的文档中为_id,而使用DocumentDB.Core,我的ID在创建的文档中为id。我不确定这是否重要,或如何解决。

1 个答案:

答案 0 :(得分:0)

这是一个类似的问题,您可以看一下:

Importing Json using DocumentDB Data Migration tool gives "Error while fetching page of documents code: 400" in CosmosDB

进一步了解,以下可能是错误代码400的原因:-

-请求正文中的JSON,SQL或JavaScript无效。

-此外,当资源的POST或PUT主体中不存在或未设置资源的必需属性时,也可以返回400。

当GET操作的一致性级别被该帐户的一组更强的一致性所取代时,也会返回

-400。

当需要x-ms-documentdb-partitionkey的请求不包含-p时,也会返回

-400。

希望有帮助。