2017-12-08 4 views
1

문서를 거의 가지고 있지 않은 컬렉션을 쿼리하려고했습니다. 일부 콜렉션에는 "Exception"속성이 있으며 일부에는없는 것이 있습니다.
내 최종 쿼리는 같은 몇 가지 같습니다Azure CosmosDB IS_DEFINED 대 NOT IS_DEFINED

Records that do not contain Exception: 

**select COUNT(1) from doc c WHERE NOT IS_DEFINED(c.Exception)** 


Records that contain Exception: 

**select COUNT(1) from doc c WHERE IS_DEFINED(c.Exception)** 

을하지만이 작동하지 않을 것 같습니다. NOT IS_DEFINED 일부 카운트를 반환 할 때 IS_DEFINED 실제로 데이터가있는 0 레코드를 반환하고 있습니다. 나중에하지 않는 동안

이 IS_DEFINED IS_DEFINED과하지 사이의 주요 차이점은 전자입니다
[{ 
    'Name': 'Sagar', 
    'Age': 26, 
    'Exception: 'Object reference not set to an instance of the object', ... 
}, 
{ 
    'Name': 'Sagar', 
    'Age': 26, ... 
}] 
+1

docDB에서 카운트를하고 있습니까? 단편뿐만 아니라 전체 검색어를 제공하십시오. –

+0

문서에서 COUNT (1)을 선택하십시오. WHERE IS_DEFINED (c.Exception) –

+0

또한 다음과 같이 시도하십시오. 문서 c에서 COUNT (c.I'd)를 선택하십시오. WHERE IS_DEFINED (c.Exception) –

답변

-1

인덱스를 활용 (:

내 데이터는 같은 것을 (일부 문서가 & 다른 사람들이하지 않는 예외 속성을 포함 할 수 있습니다) 보이는 같은 w/= 대! =). IS_DEFINED 쿼리가 하나의 연속으로 끝나는 경우가 많으므로 전체 COUNT 개의 결과가 표시됩니다. 반면에 NOT IS_DEFINED 쿼리가 하나의 연속에서 끝나지 않아서 COUNT 개의 결과를 얻은 것으로 보입니다. 쿼리 계속에 따라 전체 결과를 얻어야합니다.

+0

카운트를 얻으려면 전체 결과 집합을 가져올 필요가 없습니다. –