2016-09-16 3 views
0

가 나는 DocumentDB 컬렉션에서이 3 개 문서 말해봐 선택적 요소에 일치하는 항목을 선택합니다 : 나는 '이름'과 일치하는 모든 문서를 반환하는 하나의 SQL 쿼리를 구성 할 방법DocumentDB : SQL은

[ 
    { 
     "name": "tiger", 
     "keywords": [ 
      "animal", 
      "cat", 
      "stripes" 
     ] 
    }, 
    { 
     "name": "cat" 
    }, 
    { 
     "keywords": [ 
      "panther", 
      "black" 
     ] 
    } 
] 

을 "고양이 "키워드"와 "이름"이 문서의 선택 요소 일 때 "키워드"는 "고양이"와 일치합니까?

SELECT * r.name = '고양이'OR ARRAY_CONTAINS은 (r.keywords이 '고양이')

답변

1

이 쿼리를 사용해보십시오. ARRAY_CONTAINS가 CONTAINS와 같은 방식으로 부분 문자열과 일치하도록 쿼리를 수정하는 방법을 알고 계십니까? ARRAY_CONTAINS는 문자열과 정확하게 일치해야합니다. 예를 들어, 문자열 "ca"는 다음과 같습니다. SELECT * FROM root r WHERE CONTAINS (r.name, 'ca') 또는 ARRAY_CONTAINS (r.keywords, 'ca')
+0

훌륭한 작품 루트 R FROM : – Projectitis

+0

ARRAY_CONTAINS는 검색 항목과 배열 검색 항목은 어떤 유형이든 상관 없습니다. 여기 다른 방법은 에 보관하십시오 (K, 'CA')을 (r.name, 'CA')를 포함하거나 CONTAINS r.keywords IN K 가입 루트에서 R SELECT VALUE 연구 을하는 것입니다 JOIN은 키워드 배열을 평평하게하고 결과 집합은 입력 문서와 배열의 각 항목을 교차 적으로 곱한다는 것을 기억하십시오. 예를 들어,이 쿼리는 r.name이 두 배열 항목의 조건을 모두 만족하므로 두 번째 문서를 두 번 반환합니다. –