我正在使用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
}
这如何使我接近找出分区键是什么?
答案 0 :(得分:1)
您尝试使用标准的cosmos .Net客户端吗?
var col = await CosmosClient.ReadDocumentCollectionAsync(UriFactory.CreateDocumentCollectionUri(
dataBaseName,
collectionName));
var pathes = col.Resource.PartitionKey.Paths;
答案 1 :(得分:0)
.NET SDK使您能够使用ReadPartitionKeyRangeFeedAsync查询分区范围。
Get all the Partition Keys in Azure Cosmos DB collection
是的,.NET SDK为您提供了一种查找分区键的方法。
答案 2 :(得分:0)