1

我正在使用 RESTfull HTTP 请求来获取集合的分区键。我在做:

        response = client.GetStringAsync(new Uri(baseUri, resourceLink)).Result;
        var data3 = (JObject)JsonConvert.DeserializeObject(response);
        if (data3["partitionKey"] != null)
        {
            string partitionKey = data3["partitionKey"]["paths"][0].ToString();
            string PartitionKey = partitionKey.Substring(1);
            return PartitionKey;
        }

有没有更有效的方法来做到这一点?他们的 SDK 是否有直接获取分区密钥的方法?

更新

我对获取分区键范围的回应是:

item={ "_rid": "lIB0ALrgyAACAAAAAAAAUA==", "id": "0", "_etag": "\"00000000-0000-0000-0318-18b49de501d4\"", "minInclusive": "", "maxExclusive": "FF", "ridPrefix": 0, "_self": "dbs/lIB0AA==/colls/lIB0ALrgyAA=/pkranges/lIB0ALrgyAACAAAAAAAAUA==/", "throughputFraction": 1.0, "status": "online", "parents": [], "_ts": 1528895512 }

这如何让我接近找出分区键是什么?

4

3 回答 3

1

您是否尝试过使用标准 cosmos .Net 客户端?

            var col = await CosmosClient.ReadDocumentCollectionAsync(UriFactory.CreateDocumentCollectionUri(
            dataBaseName,
            collectionName));

            var pathes = col.Resource.PartitionKey.Paths;
于 2018-06-19T18:07:33.497 回答
0

.NET SDK 使您能够使用 ReadPartitionKeyRangeFeedAsync 查询分区范围。

获取 Azure Cosmos DB 集合中的所有分区键

所以是的,.NET SDK 为您提供了一种查找分区键的方法。

于 2018-06-19T18:14:23.663 回答
0

显然这是不可能的,他们不会改变这一点

https://feedback.azure.com/forums/263030-azure-cosmos-db/suggestions/38737903-method-to-get-all-partitionkeys-of-a-collection-c

于 2020-11-27T21:44:43.807 回答