
SQL과 유사한 구문을 사용하여 JSON 문서 데이터베이스를 쿼리하고 싶으신가요? 카우치베이스에는 N1QL 사용자를 위해.
N1QL 은 JSON용 SQL을 확장하는 선언적 쿼리 언어입니다. 기본 프레임워크 및 언어 통합, 유창한 API 또는 JDBC/ODBC 드라이버를 통해 데이터를 쿼리할 수 있습니다.
N1QL을 사용하면 한 번의 쿼리로 데이터를 정렬, 필터링, 변환, 그룹화, 결합하는 등 제한 없이 JSON 문서를 쿼리할 수 있습니다. 맞습니다. 다음을 수행할 수 있습니다. 결합 여러 문서에서 JOIN. 약속했던 그 유연한 데이터 모델? 바로 이것입니다. 더 이상 '단일 테이블' 및 '쿼리별 테이블' 데이터 모델에 국한되지 않습니다.
N1QL 튜토리얼 은 SQL과 유사한 구문을 사용하여 JSON 문서를 쿼리하는 개념을 배울 수 있는 훌륭한 리소스입니다. 다음은 몇 가지 예시입니다:
|
1 2 3 |
SELECT children[0].fname AS cname FROM tutorial WHERE fname='Dave' |
또는
|
1 2 3 |
SELECT fname, age, age/7 AS age_dog_years FROM tutorial WHERE fname = 'Dave' |
또는
|
1 2 3 4 |
SELECT relation, COUNT(*) AS count FROM tutorial GROUP BY relation HAVING COUNT(*) > 1 |
또는
|
1 2 3 4 5 6 7 8 |
SELECT t.relation, COUNT(*) AS count, AVG(c.age) AS avg_age FROM tutorial t UNNEST t.children c WHERE c.age > 10 GROUP BY t.relation HAVING COUNT(*) > 1 ORDER BY avg_age DESC LIMIT 1 OFFSET 1 |
또는
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
SELECT product.name, COUNT(reviews) AS reviewCount, ROUND(AVG(reviews.rating),1) AS AvgRating, category FROM reviews AS reviews JOIN product AS product ON KEYS reviews.productId UNNEST product.categories AS category WHERE category = "Appliances" GROUP BY category, product ORDER BY AvgRating DESC LIMIT 3 |
N1QL을 실험해 볼 준비가 되셨나요? 확실히 사용할 수 있습니다. CBQ 도구. 또는 다음을 사용할 수 있습니다. 카우치베이스 쿼리 워크벤치. 쿼리 워크벤치는 간단한 쿼리부터 복잡한 N1QL 쿼리를 준비하고 실행할 수 있는 풍부한 그래픽 사용자 인터페이스를 제공합니다. N1QL 문을 찾아보고, 만들고, 실행하고, 결과를 볼 수 있도록 하여 쿼리 개발을 편리하게 수행할 수 있는 방법을 제공합니다.
시작하는 방법을 알아보고 싶으신가요? 에벤 하버와 함께하는 이 간단한 세션에서 이에 대한 모든 것을 알아보세요:
다음 주소로 질문하세요. 스택 오버플로 또는 카우치베이스 포럼.
다음 링크에서 팔로우할 수도 있습니다. @couchbasedev 그리고 @couchbase. 즐기세요!