Azure cosmosdb Cosmos数据库sql;提要上的分区键选项与查询分区键?

Azure cosmosdb Cosmos数据库sql;提要上的分区键选项与查询分区键?,azure-cosmosdb,azure-cosmosdb-sqlapi,Azure Cosmosdb,Azure Cosmosdb Sqlapi,在.net core sdk FeedOptions中提供分区键与将其作为查询条件有什么区别?例如,如果要列出给定分区键内的所有项。您应该在条件中使用提要选项还是分区键 分区键输入条件 SELECT * FROM c where c.PartitionKey = "some partition key" 带feedoptions的.net核心 var allDocs = await (from d in client.CreateDocumentQuery<Document>(Ur

在.net core sdk FeedOptions中提供分区键与将其作为查询条件有什么区别?例如,如果要列出给定分区键内的所有项。您应该在条件中使用提要选项还是分区键

分区键输入条件

SELECT * FROM c where c.PartitionKey = "some partition key"
带feedoptions的.net核心

var allDocs = await (from d in client.CreateDocumentQuery<Document>(UriFactory.CreateDocumentCollectionUri(databaseId, "TestCollection"), 
                     new FeedOptions { PartitionKey = new PartitionKey("some partition key") })
                     select d)
                    .AsDocumentQuery<Document>().ExecuteNextAsync<Document>();
当我创建了一个自定义索引策略,其中分区键被排除在索引之外时,出现了一个问题。因此,在查看RU/s成本时,它似乎在排除时执行扫描,而不是在使用默认索引策略时执行索引查找


这是否意味着如果需要跨分区查询,则需要为分区键编制索引,如果只需要在给定的分区键内查询,则可以将其排除—假设您在FeedOptions中提供了分区键?

我来自CosmosDB工程团队

在你的帖子中有两个相互正交的问题:

我们是在feedOptions中还是在查询中指定PartitionKey? 这不重要。在FeedOptions或查询本身中指定它将帮助它路由到正确的分区执行

我们是否需要向索引策略添加分区键以有效执行查询? 您应该始终将分区键添加到索引策略中。这确保在查询执行期间,索引用于为查询中指定的分区键选择文档