Azure cosmosdb Cosmos DB-为什么在使用sql api SDK进行点查询时必须提到分区键?

Azure cosmosdb Cosmos DB-为什么在使用sql api SDK进行点查询时必须提到分区键?,azure-cosmosdb,azure-cosmosdb-sqlapi,Azure Cosmosdb,Azure Cosmosdb Sqlapi,为什么在使用sql api SDK对分区集合进行点查询时必须提到分区键 是否有方法使用sql api SDK对分区集合执行点查询而不提及“PartitionKey”?因为它是点查询 工作示例: //-db_id是数据库的id属性 //-coll_id是DocumentCollection的id属性 //-doc_id是要读取的文档的id属性。 var docUri=UriFactory.CreateDocumentUri(“db_id”、“coll_id”、“doc_id”) 等待docClie

为什么在使用sql api SDK对分区集合进行点查询时必须提到分区键

是否有方法使用sql api SDK对分区集合执行点查询而不提及“PartitionKey”?因为它是点查询

工作示例:
//-db_id是数据库的id属性
//-coll_id是DocumentCollection的id属性
//-doc_id是要读取的文档的id属性。
var docUri=UriFactory.CreateDocumentUri(“db_id”、“coll_id”、“doc_id”)
等待docClient.readdocumentsync(docUri,newrequestoptions{PartitionKey=new PartitionKey(实现)})

非工作示例: var docUri=UriFactory.CreateDocumentUri(“db_id”、“coll_id”、“doc_id”)
等待docClient.readdocumentsync(docUri)

下面没有分区键的查询失败,错误消息:“必须为此操作提供分区键值。”


为什么需要在针对分区集合的点查询中提及分区密钥?

分区密钥是必需的,当您创建帐户时,将要求您提供分区密钥。它用于切分,并充当数据的逻辑分区,为Cosmos DB提供了一个用于分布数据的自然边界。因此,它与设计一起出现

因此,无论何时使用SDK从cosmosdb查询数据,都需要传递PartitionKey


之所以需要PARTIONKEY,是因为CosmosDB在找到数据之前不会解析查询。

PARTIONKEY是必需的,创建帐户时会要求您提供分区密钥。它用于切分,并充当数据的逻辑分区,为Cosmos DB提供了一个用于分布数据的自然边界。因此,它与设计一起出现

因此,无论何时使用SDK从cosmosdb查询数据,都需要传递PartitionKey


之所以需要PARTIONKEY,是因为CosmosDB在找到数据之前不会解析查询。

这就是您需要传递PARTIONKEY的原因谢谢,我理解PARTIONKEY的作用。但我的查询是关于在使用点查询发出db请求时分区查询的需要。例如,“SELECT*FROM c WHERE c.id=“foo”如果“id”是分区键,而分区键已经是查询的一部分,那么我仍然必须明确地提到id是分区,而我使用sql api SDK?是的,您需要明确地提到,因为cosmosdb的工作方式是,它首先确定数据位于何处,然后执行查询。但是使用msdn url”“不需要提及分区键。当我在应用程序中对分区集合使用相同的代码时,它会失败,但对于非分区集合,它会工作,如何?&为什么?请回答上面的答案。我不知道如何进一步解释这就是为什么需要传递分区键谢谢,我理解分区键的作用。但我的查询是关于在使用点查询发出db请求时分区查询的需要。例如,“SELECT*FROM c WHERE c.id=“foo”如果“id”是分区键,而分区键已经是查询的一部分,那么我仍然必须明确地提到id是分区,而我使用sql api SDK?是的,您需要明确地提到,因为cosmosdb的工作方式是,它首先确定数据位于何处,然后执行查询。但是使用msdn url”“不需要提及分区键。当我在应用程序中对分区集合使用相同的代码时,它会失败,但对于非分区集合,它会工作,如何?&为什么?请回答上面的答案。我不知道如何解释更多