Android

Couchbase Lite로 업데이트하는 더 좋은 방법

Edits of

헨델의 악보 원본 초안 사본

사진 제공 아드리안 팔란트 라이선스에 따른 허가 CC BY-SA 2.0

CRUD의 U

In  이전 게시물에서 기본 CRUD 작업 시작하기 에 대해 썼습니다. 카우치베이스 라이트 를 사용하세요. 이 간단한 메모에서는 문서 업데이트에 대해 좀 더 자세히 살펴보고자 합니다. 이렇게 하면 완전히 새로운 문제에 대한 문이 열립니다. 내부를 들여다보겠습니다.

카우치베이스 라이트는 문서 중심의 데이터베이스입니다. 문서는 다음과 같이 저장됩니다. JSON 객체를 사용할 수 있습니다. 이전 게시물에서 설명한 대로 문서 콘텐츠를 직접 작업하는 것은 쉽습니다. 문서 개체에 맵으로 저장됩니다. 이는 콘텐츠를 조작하는 기본 방식과 잘 맞습니다.

직접 접근 방식 조정하기

문서를 검색하면 데이터의 변경 불가능한 버전이 포함된 복사본을 얻게 됩니다. 지도를 별도의 지도 개체에 복사한 다음 이전 지도를 덮어쓰면 이 문제를 해결할 수 있습니다. 이 코드 스니펫에 그 방법이 나와 있습니다:

이렇게 하면 실제로 새로운 개정 를 사용하여 새 문서 본문을 만듭니다.

또는 다음을 사용할 수 있습니다. createRevision() 를 사용하여 새로운 저장되지 않은 수정본. 그러면 변경 가능한 콘텐츠가 포함된 최신 수정본 사본이 반환됩니다. 그런 다음 속성 맵을 직접 조작할 수 있습니다. 변경 사항은 저장(). 이 코드 스니펫의 최종 효과는 이전 코드 스니펫과 동일합니다:

수정이라고요?

이는 많은 애플리케이션에 유용합니다. 아직 개정에 대해서는 많이 말씀드리지 않았습니다. 문서가 변경된다는 것을 알 수 있습니다. Couchbase Lite에는 이러한 변경 사항과 함께 문서 수정본에 대한 개념이 있습니다.

하지만 수정은 단순히 일련의 선형적인 변경 사항을 추적하는 것 이상의 의미를 가집니다. 제가 보여드린 예에서 눈에 띄지 않는 것은 충돌의 가능성입니다. 충돌은 특정 문서 수정본에 대한 두 개 이상의 업데이트가 데이터베이스에 다시 커밋될 때 발생합니다.

실제 문서처럼 생각하세요. 기사(또는 블로그 게시물!)를 작성하여 여러 사람에게 보내서 의견을 받는다고 가정해 보세요. 한 세트의 댓글을 받고 약간의 수정을 가합니다. 그러면 동일한 원본 문서를 기반으로 한 또 다른 댓글 세트가 돌아옵니다. 이 과정을 충분히 자주 반복하면 일부 변경 사항이 겹치는 경우를 거의 보장할 수 있습니다. (소프트웨어 개발자의 경우 소스 제어를 사용할 때 충돌을 병합하는 것이 더 좋은 예일 것입니다.) 충돌!

문서 업데이터

문서 충돌, 수정 내역 등을 다루는 것은 이 글에서 다루고 싶은 것 이상입니다. 하지만 Couchbase가 어떻게 도움이 되는지 살짝 엿볼 수 있습니다. 이 마지막 업데이트 접근 방식은 과한 것처럼 보일 수 있지만 충돌이 해결되면 그 가치를 알게 될 것입니다. 다음은 코드입니다:

와, 앞의 예제보다 훨씬 더 복잡해 보이네요. 실제로는 조금 더 복잡할 뿐입니다. 구조가 추가되면 결국 생활이 훨씬 더 쉬워집니다. 그래서 무슨 일이 일어나고 있을까요?

이 구조를 통해 Couchbase Lite는 충돌을 처리하는 지루한 작업을 처리할 수 있습니다. 콜백을 정의할 때는 문서 업데이터 인터페이스. 카우치베이스 라이트는 새로운 인터페이스 생성을 처리합니다. 저장되지 않은 수정본 인스턴스를 생성합니다. 그런 다음 메서드에서 원하는 대로 변경해야 합니다. 반환되면 Couchbase Lite는 자동으로 문서를 저장하려고 시도합니다. 충돌이 감지되는 경우 카우치베이스 라이트는 간단히 업데이트() 다시 클릭합니다. 반환 true 저장하려는 변경 사항을 수행한 경우 또는 false 그렇지 않으면

수정, 충돌 및 충돌 해결에 대해 자세히 알아보려면 다음 가이드를 참조하세요. 여기

포스트 스크립트

더 많은 리소스를 확인하세요. 개발자 포털 트위터에서 팔로우하세요 카우치베이스 개발.

질문에 대한 답변을 게시할 수 있습니다. 포럼. 그리고 다음에도 적극적으로 참여합니다. 스택 오버플로.

다음 주소에서 저를 개인적으로 팔로우할 수 있습니다. 호드그릴리

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

작성자

게시자 호드 그릴리

호드 그레이리는 실리콘밸리에 거주하는 카우치베이스의 개발자 옹호자입니다. 그는 소프트웨어 엔지니어 및 엔지니어링 관리자로서 20년 이상의 경력을 보유하고 있습니다. 그는 전산 물리학 및 화학, 컴퓨터 및 네트워크 보안, 금융, 모바일 등 다양한 소프트웨어 분야에서 일해 왔습니다. 2016년 카우치베이스에 합류하기 전에는 삼성에서 모바일 개발자 관계를 이끌었습니다. 컬럼비아 대학교에서 화학 물리학 박사 학위를 받았습니다.

댓글 하나

  1. [...] 간단히 말해서 문서를 만들고 업데이트하는 두 가지 예가 있습니다. 이 방법이 선호되는 업데이트 방법은 아니지만 많은 경우에 충분합니다. 업데이트에 대한 자세한 내용은 여기에서 확인할 수 있습니다. [...]

댓글 남기기

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

구축 시작

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

카펠라 무료 사용

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

연락하기

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