【问题标题】:Is it possible to check if a logical partition exist in Azure Cosmos DB?是否可以检查 Azure Cosmos DB 中是否存在逻辑分区?
【发布时间】:2025-12-04 21:25:01
【问题描述】:

当我们通过QueryRequestOptions使用partitionkey进行查询时,是否有任何Partition key not found异常?或者有没有其他方法可以通知我查询中不存在逻辑分区?

【问题讨论】:

  • or is there any other ways I can be notified that the logical partition does not exist in a query? - 如果查询不包含分区键,您想收到通知,还是根据您提供的分区键值在没有数据时收到通知?
  • 如果有逻辑分区不存在,我想得到通知。比如我用 QueryRequestOptions queryRequestOptions = new QueryRequestOptions() { PartitionKey = "newPartition that doesn't exist in container"}; 指定查询,可以用分区键不存在抛出吗?

标签: azure-cosmosdb azure-cosmosdb-sqlapi


【解决方案1】:

查询时是否有任何 Partition key not found 异常 partitionkey 通过 QueryRequestOptions?

假设您在谈论分区键的值,据我所知,Cosmos DB 中没有这样的东西。

或者有没有其他方法可以通知我逻辑 查询中不存在分区?

一种可能的找出方法是使用查询中的分区键值查询您的容器,并尝试最多获取一个文档。如果您没有取回任何文档(即获取空结果集),则意味着容器中不存在逻辑分区。

【讨论】:

  • 是的,但是这样的替代方案会导致不必要的 RU 成本。
  • 同意。但是以这种方式考虑 - 假设 Cosmos DB 提供了一个端点来检查逻辑分区是否存在,那么无论如何您都会招致 RU 来查询该端点。
  • 是的。如果分区确实存在,最便宜的方法是 Cosmos DB 直接向我们抛出错误。
  • 即使这样也会花费你 RU。
  • 但是对于存在分区的那些,不需要额外的往返检查(额外的RU)