2017-03-08 1 views
0

내 테이블 구조에는 파티션 키, 행 키 및 JSON 데이터가 포함 된 열이 있습니다. 파티션 키와 JSON 데이터의 특정 값을 기반으로 테이블을 쿼리하려고합니다.Azure 테이블 저장소에서 비 파티션 및 비 행 키 쿼리

샘플 JSON 데이터 :

{"ConsumerId":"7","value01":"850.58"} 

내가 만든 쿼리

var query = new TableQuery<CloudModelDetail>().Where(TableQuery.CombineFilters(TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, retailerReferenceId), 
      TableOperators.And, TableQuery.GenerateFilterCondition("CloudModelJsonData","Contains", consumerId))); 

입니다 그러나 그것은 나에게 원하는 결과를 제공하지 않습니다. 누구든지 올바른 쿼리를 도와 줄 수 있습니까?

+1

이미 json 개체로 작업하는 경우 문서 DB를 고려할 수 있습니다. json 속성에 의해 문서 db에서 쿼리 할 수 ​​있어야한다고 생각합니다. –

답변

2

테이블 저장소는 불행히도 Contains과 같은 와일드 카드 일치를 지원하지 않습니다.

당신이 불평등 정규으로, StartsWith처럼 행동 할 수 CompareTo를 사용하여 고려할 수 있습니다 (https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/query-operators-supported-for-the-table-service 참조) - 그러나 이것은 단지 당신의 JSON 데이터는 항상 {"ConsumerId":"value",

더 나은로 시작하면 아직 작동합니다 - 추가로 ConsumerId 추가 필드를 사용하거나 파티션 및 행 키 구조를 다시 생각하여 성능에 도움이되는 소비자 ID가 포함 된 복합 키를 사용할 수 있습니다.

관련 문제