다음에서 데이터를 쿼리하는 방법은 여러 가지가 있습니다. 카우치베이스 서버. 문서를 직접 조회할 수 있습니다.
키를 기반으로 뷰를 쿼리하거나 N1QL 쿼리를 작성할 수도 있습니다.
데이터를 가져올 때는 문서 키를 기반으로 조회하는 것이 쿼리하는 것보다 항상 더 빠릅니다.
조회해야 하는 키가 몇 개 있을 때는 어떻게 해야 할까요? 다음과 같이 쉽게 반복할 수 있습니다.
키를 사용할 수 있지만, 이는 작업당 새로운 네트워크 요청입니다. 일괄 처리할 수 있다는 사실을 알고 계셨나요?
이러한 키를 하나의 요청으로 통합할 수 있을까요?
이 질문을 몇 번 본 적이 있어서 어떻게 하면 좋을지 글을 쓰면 도움이 될 것 같았습니다. 그럼
Node.js 애플리케이션에서 조회해야 하는 키가 1000개라는 시나리오를 사용합니다. 이를 위해
코드는 다음과 같이 보일 수 있습니다:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
var Couchbase = require("couchbase"); var cluster = new Couchbase.Cluster("couchbase://localhost"); var bucket = cluster.openBucket("default", ""); bucket.getMulti(["234adsf", "bab7", "fe3f9921"], function(error, results) { if(error) { console.log(error + " failed to be retrieved"); } for(var key in results) { if(results.hasOwnProperty(key)) { if(results[key].error) { console.log("`" + key + "`: " + JSON.stringify(results[key])); } } } process.exit(0); }); |
위의 예에서는 로컬로 실행 중인 Couchbase 인스턴스에 연결하고 기본값인
버킷을 사용합니다. 한 번의 요청으로 키를 기반으로 세 개의 서로 다른 문서를 가져오는 것이 목적입니다. 이
를 통해 가능합니다. getMulti 메서드를 호출합니다. 문서 키가
카우치베이스 또는 다른 문제가 있는 경우 결과에 오류가 반환됩니다.
성능이라는 주제에 관심이 있으신 분들을 위해 Kirk Kirkconnel이 블로그 포스팅을 작성했습니다.
차이점. 차이점은 다음과 같습니다. 여기. You
에서 일괄 처리 작업에 대해 읽을 수도 있습니다. 문서.
[...] 위 쿼리의 설명을 보면 쿼리에 인덱스가 사용되지 않았다는 것을 알 수 있습니다. 위와 같은 유형의 쿼리는 얻고자 하는 키를 알고 있고 이전 글인 Node.js로 단일 작업에서 키별로 여러 문서 가져오기에서 수행한 방법과 유사한 매우 빠른 성능을 원하는 경우에 유용할 것입니다. [...]