카우치베이스 모바일 파트 2: 카우치베이스 라이트 뷰(인덱스!)

이 블로그는 원래 로이 카츠의 개인 블로그 사이트에 게시되었습니다. 제발 여기를 클릭하세요 를 클릭하여 원본 게시물을 찾습니다.

에서 파트 1 작지만 멋진 애플리케이션을 만들었고, 심지어 다른 Couchbase Lite에 복제하기도 했습니다.

하지만 이제 어떻게 할까요? 실제로 사용하고 싶어요!

그렇다면 데이터베이스를 어떻게 사용하나요? 적어도 데이터를 '가져오는' 데는 몇 가지 옵션이 있습니다:

  1. 기본 키로 가져오기
  2. 인덱스로 가져오기(또는 x에서 '선택')

지금까지는 간단한 샘플 앱에서 '기본 키'만을 사용하여 데이터에 액세스하고 데이터를 검색할 수 있었습니다.

하지만 Couchbase Lite에서 데이터를 가져올 수 있는 유일한 방법은 아닙니다.

이 부분에서는 Couchbase Lite 인덱싱의 기본을 배웁니다. 일명 뷰라고도 합니다.

뷰에서 쿼리를 실행합니다.

그래서 우리는 해야 합니다:

  1. 보기 만들기
  2. 뷰에서 쿼리 실행
  3. 결과 보기

Couchbase Lite에서 '보기'를 사용하는 방법에 대한 사용 사례를 구축하겠습니다.

  1. 새 WPF 프로젝트를 시작합니다.
  1. Nuget Couchbase.Lite 패키지 추가하기
  1. 해당 XAML 복사

이는 다음과 같이 해석됩니다.

GUI는 위의 XAML 형식으로 생성됩니다.
  1. 나중에 살펴볼 수 있는 기본 UI를 살펴본 후에는(여기서는 별다른 내용이 없습니다) 실제 코드로 넘어가 보겠습니다.

모든 작업을 시작하고 데이터베이스를 초기화한 후 뷰를 정의해 보겠습니다.

이 경우에는 설정 방법을 보여주기 위해 하나의 보기를 정의했습니다.

여기서 볼 수 있듯이 _database에서 이름을 검색하면 그 위에 지도를 정의할 수 있는데, 지도는 기본적으로 투영과 필터링입니다.

위의 예에서는 "docs_by_city"라는 뷰를 만들고, 위임자를 할당하고, 일부 키("City")가 존재하는지 확인한 다음 인덱스로 내보냈습니다. 간단합니다.

방금 모든 문서에 City라는 속성이 포함된 인덱스를 만들었는데, 이 인덱스는 전체 문서를 방출하며 앱의 요구사항에 따라 원하는 것을 방출하도록 선택할 수 있습니다.

더 나은 성능과 더 작은 인덱스 크기를 위해 조정할 수 있습니다.

또한 원하는 문자열을 키로 입력하거나 여러 속성에서 인덱스를 구성하여 특별한 요구 사항을 타겟팅할 수 있습니다.

인덱스에 전체 문서를 저장하는 것은 기본적으로 문서의 사본을 인덱스 안에 만들기 때문에 결코 좋지 않습니다. 색인을 가능한 한 작게 유지하세요. 그러나 전체 문서를 결과로 포함하는 인덱스가 필요한 경우 성능상 결과.문서 속성에 액세스하는 대신 문서를 인덱스에 보관하는 것이 데이터베이스에 대한 일부 왕복 작업을 동일하게 수행하는 데 더 좋습니다.

여기서 숫자 "1"은 인덱스의 버전입니다. 개발 중에 맵 함수를 변경하면 인덱스를 다시 빌드하기 위해 (전체 데이터베이스를 삭제하지 않은 경우) 해당 번호도 증가시켜야 합니다.

두 가지 특별한 쿼리가 있습니다.

  1. 모든 문서 개수를 가져옵니다. (_database.DocumentCount 사용)
  2. 모든 문서를 가져옵니다. (_database.CreateAllDocumentsQuery() 사용)

뷰(*인덱스)를 정의한 후에는 코드 작성을 시작하여 사용할 수 있습니다.

  1. 사용법은 5단계로 매우 간단합니다.
  2. 뷰 보기
  3. 뷰에 쿼리 만들기
  4. 색인에 대한 기준 정의
  5. 실행하기
  6. 읽기

코드에서는 훨씬 더 간단해 보입니다:

정확한 "도시"를 원하기 때문에 시작 키와 끝 키에 같은 값을 썼습니다.

쿼리를 실행하고 결과가 있는지 확인합니다.

그런 다음 결과를 (모든 값에 대해) '미화'하고 이를 JSON 배열로 반환합니다.

결과.문서를 사용하면 인덱스를 사용하지 않고 각 결과에 대해 데이터베이스를 쿼리하므로 여기서 결과.문서가 아니라 결과.값을 사용하고 있다는 점에 유의하세요.

따라서 성능을 위해 결과.key, 결과.value 또는 결과.DocumentId를 사용하세요.

이제 해당 부분을 추가하여 데이터를 생성하기만 하면 됩니다...

이제 준비 완료!

간단한 보기는 이렇게 합니다!

물론 카우치베이스 라이트 뷰에는 앞으로 더 많은 기능이 추가될 예정이지만, 이는 시작에 불과합니다.

물론 적절한 프로퍼티를 만들어야 하므로 전체 프로젝트에 대해서는 내 GitHub 페이지로 이동합니다.

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

작성자

게시자 로이 카츠, 솔루션 아키텍트, Couchbase

Roi는 10년 이상의 폭넓은 업계 경험을 가진 Couchbase 솔루션 아키텍트, 소프트웨어 개발자 및 설계자입니다. 그는 빅 데이터 시스템, NoSQL 데이터베이스, 카우치베이스, 분산 아키텍처 및 클라우드 컴퓨팅을 전문으로 하는 교육 과정의 강사이자 저자로 활동해 왔습니다.

댓글 하나

  1. 여기서 _database는 무엇인가요? 위의 내용을 카우치베이스 서버를 사용하는 nodeJs 앱에서 구현하려고 하는데 _database 대신 버킷 이름을 넣었지만 아무것도 제대로 얻지 못했습니다.

댓글 남기기

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

구축 시작

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

카펠라 무료 사용

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

연락하기

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