Azure Cosmos DB SDK v3 查询多个文档失败:网关无法检索查询计划
Azure Cosmos DB SDK v3 query for multiple documents fails: Gateway Failed to Retrieve Query Plan
使用 Cosmos SDK v3 中的 Cosmos DB SQL API,我试图查询 projects
容器,它有一个 /organization
分区键。
var cosmosDb = await Storage.GetCosmosDb();
var queryDefinition = new QueryDefinition($"SELECT * FROM projects project WHERE project.organization = '{CurrentUser.Organization}'");
var queryRequestOptions = new QueryRequestOptions
{
PartitionKey = new PartitionKey("organization"),
};
var projectsQuery = cosmosDb.Containers[typeof(Project)]
.GetItemQueryIterator<Project>(queryDefinition, null, queryRequestOptions);
var projects = new List<Project>();
while (projectsQuery.HasMoreResults)
{
projects.AddRange(await projectsQuery.ReadNextAsync());
}
结果是错误的:
Response status code does not indicate success: 400 Substatus: 0 Reason: (Response status code does not indicate success: 400 Substatus: 0 Reason: (Gateway Failed to Retrieve Query Plan: Unknown QueryFeatures: NonValueAggregateActivityId: ceb5a509-36a0-4e20-87cd-32b6425dc757, Microsoft.Azure.Documents.Common/2.4.0.0, Windows/10.0.18362 cosmos-netstandard-sdk/3.2.1).).
我是不是遗漏了什么明显的东西?这个错误是什么意思?
在 x86 中 运行ning 时,这已被检测为 SDK 3.2.0 上的一个问题:https://github.com/Azure/azure-cosmos-dotnet-v3/issues/856
当前的解决方法是在使用模拟器时在 x64 中 运行。
它应该会在即将发布的 3.2.1 版本中得到修复。
将 CosmosDB 模拟器更新到最新版本应该可以解决这个问题。
我在 2.4.5 中遇到了问题,在 2.5.7 中不再有这个问题。
对我来说,是集合中的手动缩放模式,将其更新为自动缩放,就像容器设置一样,它起作用了。
使用 Cosmos SDK v3 中的 Cosmos DB SQL API,我试图查询 projects
容器,它有一个 /organization
分区键。
var cosmosDb = await Storage.GetCosmosDb();
var queryDefinition = new QueryDefinition($"SELECT * FROM projects project WHERE project.organization = '{CurrentUser.Organization}'");
var queryRequestOptions = new QueryRequestOptions
{
PartitionKey = new PartitionKey("organization"),
};
var projectsQuery = cosmosDb.Containers[typeof(Project)]
.GetItemQueryIterator<Project>(queryDefinition, null, queryRequestOptions);
var projects = new List<Project>();
while (projectsQuery.HasMoreResults)
{
projects.AddRange(await projectsQuery.ReadNextAsync());
}
结果是错误的:
Response status code does not indicate success: 400 Substatus: 0 Reason: (Response status code does not indicate success: 400 Substatus: 0 Reason: (Gateway Failed to Retrieve Query Plan: Unknown QueryFeatures: NonValueAggregateActivityId: ceb5a509-36a0-4e20-87cd-32b6425dc757, Microsoft.Azure.Documents.Common/2.4.0.0, Windows/10.0.18362 cosmos-netstandard-sdk/3.2.1).).
我是不是遗漏了什么明显的东西?这个错误是什么意思?
在 x86 中 运行ning 时,这已被检测为 SDK 3.2.0 上的一个问题:https://github.com/Azure/azure-cosmos-dotnet-v3/issues/856
当前的解决方法是在使用模拟器时在 x64 中 运行。
它应该会在即将发布的 3.2.1 版本中得到修复。
将 CosmosDB 模拟器更新到最新版本应该可以解决这个问题。
我在 2.4.5 中遇到了问题,在 2.5.7 中不再有这个问题。
对我来说,是集合中的手动缩放模式,将其更新为自动缩放,就像容器设置一样,它起作用了。