기본 설정
이 블로그 게시물은 로컬에 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 |
for(var i = 0;i < 5; i++) { var docKey = Guid.NewGuid().ToString(); var docContent = new { foo = "bar", type = "example", processed = false, dt = DateTime.Now }; var docContentJson = JsonConvert.SerializeObject(docContent); bucket.Insert(new Document { Id = docKey, Content = docContent }); Console.WriteLine($"Inserted: {docKey} - {docContentJson}"); } |
다음으로, 이 코드는 즉시 N1QL을 실행합니다. 업데이트 를 설정하여 모든 처리됨 필드를 true로 설정합니다. 또한 반환 문을 추가하여 문서와 키를 반환합니다.
|
1 2 3 4 5 6 7 8 |
var n1ql = @"UPDATE `default` d SET processed = true WHERE d.type = 'example' AND d.processed = false RETURNING d.*, META().id AS docKey"; var query = QueryRequest.Create(n1ql); query.ScanConsistency(ScanConsistency.RequestPlus); var results = bucket.Query(query); |
마지막으로, 다음 코드는 예시를 위해 반환된 JSON을 콘솔에 출력합니다.
|
1 2 3 4 |
foreach(var result in results.Rows) { var resultJson = JsonConvert.SerializeObject(result); Console.WriteLine($"Returned: {resultJson}"); } |
프로그램 실행
이 프로그램을 실행하려면 다음을 입력하기만 하면 됩니다. 닷넷 실행 를 입력합니다. 다음과 같은 출력이 표시됩니다:

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