尽管我知道其中包含数据,但使用Azure Cosmos DB Data Explorer没有显示任何值。使用我的Web应用程序时,我可以看到它插入了数据。我也可以通过从本地GUI查询db.files.stats().count
来验证这一点。但是,在我尝试从数据库读取的UI的任何时候,它都中断了-似乎与我尝试使用的GUI中看到的问题相同。
查看Chrome中的“网络”标签,每当我尝试刷新结果集时,都可以看到失败的请求被发送到https://portal-prod-northeurope-mongo.portal-prod-northeurope.p.azurewebsites.net
端点。
它返回的响应是
命令查找失败:处理此请求时发生未知服务器错误。
当我使用本地GUI查询数据库时遇到相同的错误,因此我认为它与Azure门户没有直接关系。 我试图删除并重新创建集合,但无济于事。 当我在Cosmos DB仿真器上本地运行所有这些程序时,它就可以正常工作。
集合的定义如下:
az cosmosdb collection create --resource-group $resourceGroup `
--name $dbService `
--collection-name 'files' `
--db-name $db `
--partition-key-path '/p'
az cosmosdb collection create --resource-group $resourceGroup `
--name $dbService `
--collection-name 'users' `
--db-name $db
az cosmosdb collection create --resource-group $resourceGroup `
--name $dbService `
--collection-name 'projects' `
--db-name $db `
--partition-key-path '/cb'
,下面是一个示例对象:
internal class File
{
[JsonProperty(PropertyName = "id")]
public Guid Id { get; set; }
[JsonProperty(PropertyName = "of")]
public string OriginalFilename { get; set; }
[JsonProperty(PropertyName = "if")]
public string InternalFilename { get; set; }
[JsonProperty(PropertyName = "ua")]
public DateTime UploadedAt { get; set; }
[JsonProperty(PropertyName = "p")]
public Guid ProjectId { get; set; }
[JsonProperty(PropertyName = "su")]
public string StorageUri { get; set; }
[JsonProperty(PropertyName = "t")]
public byte Type { get; set; }
public override string ToString() => JsonConvert.SerializeObject(this);
}
答案 0 :(得分:1)
这里是否涉及数据迁移...如何在Cosmos DB中创建数据?您能否提供一个Json文档示例,其中包含所有系统生成的属性。 数据浏览器问题往往存在于提供了预定义ID值但与Cosmos DB所需格式不匹配的已迁移数据中。
答案 1 :(得分:1)
根据评论,您遇到此问题的原因是因为您在Mongo API帐户上使用Cosmos DB SDK。 Portal和GUI都试图通过Mongo客户端使用数据,并且您的数据通过其他API保存。
Cosmos DB SDK使用 SQL API 保存文档。 Mongo API帐户旨在通过Mongo客户端/驱动程序使用和使用。
如果您的应用程序需要Mongo,请使用Mongo客户端/驱动程序存储文档,请不要使用Cosmos DB SDK。
如果您的应用程序不需要Mongo(因为您使用的是Cosmos DB SDK,那么听起来就不一样),请创建一个Core API(SQL)帐户。