从Document和PartitionKeyDefinition创建PartitionKey

时间:2017-04-26 15:28:40

标签: azure-cosmosdb

给定类型T : DocumentPartitionKeyDefinition的通用对象,如何获得与该资源对应的PartitionKey?我使用反射来处理一些简单的情况,但我必须想象有一些内置函数可以在所有情况下执行此操作。我找不到它。

1 个答案:

答案 0 :(得分:0)

根据您的描述,我创建了一个结构如下的文档:

{
  "id": "73e799df-b7a5-7470-4f25-ee6c1811a5b4",
  "tblType": "search",
  "user": {
    "memberId": 2
  }
}

注意:分区键为/user/memberId

  

给定T:Document类型的通用对象和PartitionKeyDefinition,如何获得与该资源对应的PartitionKey?

我想你想要根据PartitionKeyDefinition从文档实例中检索分区键。我创建了文档模型并按如下方式检索文档:

var results=client.CreateDocumentQuery<MyDocument>(UriFactory.CreateDocumentCollectionUri(DatabaseId,
                DocumentCollectionId), "select * from c where c.user.memberId=2").ToList();

为了从给定的文档对象中检索分区键,您可以参考以下代码片段:

var obj = JObject.FromObject(results[0]);
var result=obj.SelectToken("user.memberId"); //2

enter image description here