【发布时间】:2019-05-27 11:11:14
【问题描述】:
使用 Azure Cosmos DB 数据资源管理器没有显示任何值,即使我知道其中有数据。使用我的网络应用程序时,我可以看到它插入数据。我还可以通过从本地 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);
}
【问题讨论】:
-
Cosmos DB 支持人员要求我将其放在这里 - 我已在支持请求中包含可识别信息,以便他们可以在必要时查看确切的实例。
-
你是如何插入数据的?这看起来像一个 Mongo API 帐户。您是否通过 Mongo 客户端插入数据?或者您使用的是数据迁移工具还是 Cosmos DB SDK?
-
@MatiasQuaranta Cosmos DB SDK。没什么特别的,代码就是这样的:gist.github.com/Vannevelj/…
标签: azure azure-cosmosdb