2017-11-23 4 views
0

특정 유형별로 문서를 가져 오려고합니다. 다음은 문서를 기반으로 한 첫 번째 시도입니다.Cosmos Db에서 유형별로 문서 필터링

var dataStoreStatuses = 
    _documentClient.CreateDocumentQuery<DataStoreStatus>(
        DocumentService.CollectionUri, new FeedOptions() { 
         EnableCrossPartitionQuery = true }) 
       .ToList(); 

이 요청은 DataStoreStatus 스키마를 준수하지 않는 문서조차도 반환합니다. Cosmos Db가 schemaless 인 것처럼 작동하는 방법입니다 (문서에서는 DataStoreStatus가 the type of object to query을 정의한다고 말합니다).

나는 RavenDb를 사용하여 문서 유형을 저장 했으므로 이러한 종류의 쿼리는 실제로 실행하기가 쉽습니다. Cosmos Db에서이를 달성 할 수있는 방법이 있습니까?

답변

2

앞에서 언급 한 것처럼 DocumentDB는 스키마가 없습니다. 문서에서 "DataStoreStatus가 쿼리 할 개체의 유형을 정의합니다"라고 말하면 내가보고있는 것은 클라이언트 API의 문서입니다. 특정 제네릭 형식 인수는 실제로 DocumentDB 저장소로 보낸 쿼리의 일부가 아니지만 반환 된 문서를 원하는 형식으로 자동 매핑하는 데 도움이되도록 문서를 가져온 후 두 번째 단계로 사용됩니다. 후자의 단계는 순전히 클라이언트 측입니다.

제 생각에 의도적으로 쿼리와 함께 유형별로 문서를 쿼리 할 수 ​​없습니다.

는 다음 문서 자체에 그러한 정보를 저장해야 유형별로 문서를 조회해야하는 경우

해결. "type"또는 그와 같은 속성을 갖는 것은 매우 일반적입니다. 당신의 개체 유형은 다음 해당 필드를 포함해야

select * from c where c.type = 'DataStoreStatus' 

주 : 그럼 당신은 쿼리를 할 수 있습니다.

관련 문제