일괄 데이터 조작은 모든 종류의 작업에 매우 유용할 수 있습니다. 좋은 소식은 N1QL의 DML(데이터 조작 언어)이 싱글톤 작업뿐만 아니라 강력한 일괄/배치 데이터 변환을 완벽하게 지원한다는 것입니다. 다음은 몇 가지 강력한 예시입니다;
- UPDATE를 사용하면 마지막 업데이트된 속성이 없는 문서에 새 속성을 추가하고 초기화할 수 있습니다. .
1 |
업데이트 버킷 SET 마지막 업데이트 ="1/1/1973" 어디 마지막 업데이트 IS 누락; |
또는 이름 속성을 이름과 성으로 나누세요.
1 |
업데이트 기본값 SET first_name=분할(이름)[0], last_name=분할(이름)[1] UNSET 이름; |
- INSERT 문은 몇 가지 방법으로 일괄 처리할 수 있습니다. 다음은 VALUES를 사용한 예제입니다.
1 |
삽입 INTO 버킷(키,값) 가치("0",{"name":"Kaan"}), 가치("1",{"name":"Lara"}), ... ; |
또한 INSERT를 사용하여 실험을 위해 버킷 데이터를 다른 버킷으로 자주 복사합니다. SELECT를 사용한 INSERT는 단일 문으로 대규모 데이터 집합을 이동합니다. 다음은 bucket_1의 복사본을 bucket_2라는 새 이름으로 만드는 방법입니다.
1 |
삽입 INTO bucket_2 (키 _k, 값 _v) 선택 메타().id _k, _v FROM bucket_1 _v; |
또한 버킷_1이 변경되면 UPSERT를 사용하여 버킷_1의 변경 내용을 버킷_2에 병합합니다.
1 2 |
UPSERT INTO bucket_2 (키 _k, 값 _v) 선택 메타().id _k, _v FROM bucket_1 _v; |
일괄 업데이트와 대량 작업은 SQL의 유연성 없이는 코딩하기 어려울 수 있습니다. N1QL을 사용하면 JSON으로 이 모든 작업을 수행할 수 있습니다!
DML 문에 대한 자세한 내용은 여기에서 확인할 수 있습니다:
삽입: http://developer.couchbase.com/documentation/server/4.1/n1ql/n1ql-language-reference/insert.html
업데이트: http://developer.couchbase.com/documentation/server/4.1/n1ql/n1ql-language-reference/update.html
UPSERT: http://developer.couchbase.com/documentation/server/4.1/n1ql/n1ql-language-reference/upsert.html
MERGE: http://developer.couchbase.com/documentation/server/4.1/n1ql/n1ql-language-reference/merge.html
삭제: http://developer.couchbase.com/documentation/server/4.1/n1ql/n1ql-language-reference/delete.html
즐거운 테스트 되세요.
-cihan