기본 설정
이 블로그 게시물은 로컬에 Couchbase Server가 설정되어 있고, "default"라는 버킷이 생성되어 있으며, 최소한 해당 버킷에 기본 인덱스가 생성되어 있다고 가정합니다.
참고: Couchbase Server를 시작하는 데 문제가 있거나 특히 N1QL 인덱싱과 관련하여 오류가 발생하는 경우, '시작하기' 블로그 게시물을 다시 살펴보는 것이 좋습니다: 윈도우와 카우치베이스 파트 1 그리고 Windows를 사용한 카우치베이스 파트 2 특히.
저는 간단한 .NET Core 콘솔 프로젝트를 사용 중이며, 여기에는 제 NET Core와 비주얼 스튜디오 코드 블로그 게시물.
NET 및 N1QL을 사용한 코딩
이 코드의 대부분은 이전에 .NET과 Couchbase를 사용해 본 적이 있다면 꽤 익숙할 것입니다. 저는 (처음에) 처리된 필드가 다음과 같이 설정된 5개의 문서를 만들고 있습니다. false
. 아래 코드는 이를 삽입합니다. 또한 예시를 위해 콘솔에 기록합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
에 대한(var i = 0;i < 5; i++) { var docKey = Guid.NewGuid().ToString(); var 문서 콘텐츠 = new { foo = "bar", 유형 = "예제", 처리됨 = false, dt = 날짜/시간.지금 }; var docContentJson = JsonConvert.SerializeObject(문서 콘텐츠); 버킷.삽입(new 문서 { Id = docKey, 콘텐츠 = 문서 콘텐츠 }); 콘솔.WriteLine($"삽입됨: {docKey} - {docContentJson}"); } |
다음으로, 이 코드는 즉시 N1QL을 실행합니다. 업데이트
를 설정하여 모든 처리됨
필드를 true로 설정합니다. 또한 반환
문을 추가하여 문서와 키를 반환합니다.
1 2 3 4 5 6 7 8 |
var n1ql = @"업데이트 `기본` d SET 처리됨 = true WHERE d.type = 'example' AND d.processed = false RETURNING d.*, META().id AS docKey"; var 쿼리 = 쿼리 요청.만들기(n1ql); 쿼리.스캔 일관성(스캔 일관성.요청 플러스); var 결과 = 버킷.쿼리(쿼리); |
마지막으로, 다음 코드는 예시를 위해 반환된 JSON을 콘솔에 출력합니다.
1 2 3 4 |
foreach(var 결과 in 결과.행) { var resultJson = JsonConvert.SerializeObject(결과); 콘솔.WriteLine($"반환됨: {resultJson}"); } |
프로그램 실행
이 프로그램을 실행하려면 다음을 입력하기만 하면 됩니다. 닷넷 실행
를 입력합니다. 다음과 같은 출력이 표시됩니다:

요약
그리고 반환
키워드를 사용하면 문서 그룹을 업데이트/삽입할 때 한 단계를 줄일 수 있습니다. 좀 더 복잡한 업데이트
를 클릭해 어떤 일이 발생하는지 확인하세요. 예를 들어 다음을 사용해 보세요. 누락됨
같은 부울 플래그를 사용하는 대신 '처리됨'과 같은 부울 플래그를 사용하세요.
궁금한 점이 있으면 댓글을 남기거나 트위터로 문의하기.