Cosmos db sql; Feed选项上的分区键与查询分区键上的分区键?

时间:2019-01-30 18:27:42

标签: azure-cosmosdb azure-cosmosdb-sqlapi

是什么VS具有它作为所述查询的标准在.NET核心SDK FeedOptions给分区键之间的差异?例如,如果要列出给定分区键中的所有项目。你应该在标准饲料选项或分区键去?

条件中的分区键

SELECT * FROM c where c.PartitionKey = "some partition key"

达网络与feedoptions芯

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分区键

1 个答案:

答案 0 :(得分:2)

我来自CosmosDB工程团队。

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

  1. 我们是在feedOptions中还是在查询中指定PartitionKey?

没关系。在FeedOptions或查询本身中指定它可以帮助它路由到正确的分区以执行。

  1. 我们是否需要在索引策略中添加分区键以有效执行查询?

您应始终将分区键添加到索引策略中。这样可以确保在查询执行期间,索引用于选择查询中指定的分区键的文档。