쇼핑객 또는 판매자? 체크아웃 N1QL 쿼리

N1QL은 Couchbase Server를 위한 차세대 쿼리 언어입니다. 여러 가지 면에서 SQL과 관계형 모델을 뛰어넘는데, 가장 중요한 것은 N1QL의 속성이 여러 값을 포함할 수 있고 이러한 값을 중첩할 수 있다는 점입니다. 이 블로그에서는 전자상거래 애플리케이션에서 흔히 볼 수 있는 몇 가지 N1QL 쿼리에 대해 살펴보겠습니다. 이러한 종류의 앱에는 다음과 관련된 다양하고 풍부한 데이터가 있습니다. 제품, 고객구매.

먼저, 다음과 같은 목록을 가져옵니다. 제품 특정 카테고리에 속함(이 경우 '가전제품'을 찾고 있음)

  선택 제품

  FROM 제품

  UNNEST 제품.카테고리 as 카테고리

  어디 카테고리 = "어플라이언스"

이제 구매하려는 기기를 찾았지만 결제하기 전에 스토어에 로그인해야 합니다. 앱은 아래와 같이 사용자 프로필을 JSON 문서 형태로 Couchbase에 저장할 수 있습니다:

"결과 집합": [
   {
     "ccInfo": {
       "cardExpiry": "2013-09-12",
       "카드번호": “1228-1221-1221-1431”,
       "카드 유형": "discover"
     },
     "customerId": "customer0",
     "dateAdded": “2013-06-23T04:32:31Z”,
     "dateLastActive": “2013-07-23T04:32:31Z”,
     "이메일주소": "zion@armstronghaley.biz",
     "이름": "Rosella",
     "성": "트렘블레이",
     "전화 번호": "1-543-962-9861 x534",
     "우편번호": "75832",
     "state": "PR",
     "type": "고객"
   }
 ]
….

이제 다음과 같은 목록을 가져와 보겠습니다. 고객 와 이메일 주소를 확인합니다. 이를 위해 다음 N1QL 쿼리를 사용할 수 있습니다:

선택 이름 || ” “ || as 전체 이름, 이메일주소

FROM 고객

|| 는 N1QL에서 문자열을 연결하는 데 사용됩니다. 이 쿼리의 결과는 다음과 같습니다.

"결과 집합": [
   {
     "이메일주소": "zion@armstronghaley.biz",
     "전체 이름": "로젤라 트렘블레이"
   },
   {
     "이메일주소": "kobe@douglas.net",
     "전체 이름": "에리히 토이"
   },
….

 

로그인한 후 장바구니에 상품을 추가합니다. 결제하기 전에 마음에 드는 품목을 장바구니에 몇 개 더 추가합니다. 그런 다음 주문을 제출합니다. 잠시 후 배송팀에서 주문이 접수되었다는 알림을 받고 구매 주문서를 검토하여 패키지를 우편으로 발송할 준비를 하고 싶다고 합니다.

다음 N1QL 쿼리는 "purchase0"에 대한 쇼핑 구매 주문을 준비합니다.
 

선택 구매, 제품, 고객

FROM 구매 KEY "purchase0" UNNEST 구매.lineItems AS 항목

JOIN 제품 KEY 항목.제품

JOIN 고객 KEY 구매.customerId

여기에서 구매 정보가 있는 문서를 제품 및 고객 문서와 결합하여 완전한 구매 주문 정보를 얻습니다.

 

연말이 되면 스토어는 연간 판매. 다음 N1QL 쿼리는 월별 판매량을 계산합니다.

선택 substr(구매.구입처, 0, 7) as 라운드(합계(제품.단위가격 * 항목.카운트)/1000000, 3)로 수익백만

FROM 구매 unnest 구매.lineItems as 항목 join 제품 항목.제품

그룹 BY substr(구매.구입처, 0, 7)

주문 BY

 

더 알고 싶으신가요?

이커머스 관련 N1QL 쿼리 몇 개만 간략하게 살펴봤습니다. N1QL에 대해 자세히 알아보려면 다음을 확인하세요.  http://query.couchbase.com 그리고 곧 개최 예정인 N1QL 웨비나 를 클릭해 이 사용 사례를 자세히 살펴보세요.

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 돈 핀토, 수석 제품 관리자, Couchbase

돈 핀토는 Couchbase의 수석 제품 관리자로 현재 Couchbase Server의 기능을 발전시키는 데 주력하고 있습니다. 데이터 기술에 대한 열정이 대단한 그는 과거에 기술 블로그와 백서 등 Couchbase Server에 관한 여러 기사를 저술한 바 있습니다. Couchbase에 입사하기 전에는 IBM에서 수년간 근무하며 DB2 정보 관리 그룹에서 소프트웨어 개발자의 역할을 수행했고, 가장 최근에는 Microsoft의 SQL Server 팀에서 프로그램 관리자로 근무했습니다. Don은 캐나다 토론토 대학교에서 컴퓨터 공학 석사 학위와 컴퓨터 공학 학사 학위를 받았습니다.

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.