Docs Menu
Docs Home
/ / /
C++ 드라이버
/

반환할 문서 지정

이 페이지의 내용

  • 개요
  • 샘플 데이터
  • Limit
  • Sort
  • Skip
  • 제한, 정렬 및 건너뛰기 결합
  • 추가 정보
  • API 문서

이 가이드 에서는 다음 메서드를 사용하여 읽기 작업에서 반환할 문서를 지정하는 방법을 학습 수 있습니다.

  • mongocxx::options::find::limit(): 쿼리 에서 반환할 최대 문서 수를 지정합니다.

  • mongocxx::options::find::sort(): 반환된 문서의 정렬 순서를 지정합니다.

  • mongocxx::options::find::skip(): 쿼리 결과를 반환하기 전에 건너뛸 문서 수를 지정합니다.

이 가이드 의 예제에서는 Atlas 샘플 데이터 세트sample_restaurants 데이터베이스 에 있는 restaurants 컬렉션 을 사용합니다. C++ 애플리케이션 에서 이 컬렉션 에 액세스 하려면 Atlas cluster 에 연결하는 mongocxx::client 를 인스턴스화하고 dbcollection 변수에 다음 값을 할당합니다.

auto db = client["sample_restaurants"];
auto collection = db["restaurants"];

무료 MongoDB Atlas cluster 를 생성하고 샘플 데이터 세트를 로드하는 방법을 학습 보려면 Atlas 시작하기 가이드 를 참조하세요.

읽기 작업에서 반환되는 최대 문서 수를 지정하려면 mongocxx::options::find 클래스의 인스턴스 를 만들고 해당 limit 필드 를 설정하다 합니다. 그런 다음 mongocxx::options::find 인스턴스 를 find() 메서드에 인수로 전달합니다.

다음 예시 에서는 cuisine 필드 값이 "Italian" 인 모든 레스토랑을 찾고 결과를 5 문서로 제한합니다.

mongocxx::options::find opts{};
opts.limit(5);
auto cursor = collection.find(make_document(kvp("cuisine", "Italian")), opts);
for(auto&& doc : cursor) {
std::cout << bsoncxx::to_json(doc) << std::endl;
}
{ "_id" : { "$oid" : "..." }, ..., "name" : "Philadelphia Grille Express", "restaurant_id" : "40364305" }
{ "_id" : { "$oid" : "..." }, ..., "name" : "Isle Of Capri Restaurant", "restaurant_id" : "40364373" }
{ "_id" : { "$oid" : "..." }, ..., "name" : "Marchis Restaurant", "restaurant_id" : "40364668" }
{ "_id" : { "$oid" : "..." }, ..., "name" : "Crystal Room", "restaurant_id" : "40365013" }
{ "_id" : { "$oid" : "..." }, ..., "name" : "Forlinis Restaurant", "restaurant_id" : "40365098" }

앞의 예시 에서는 데이터베이스 에서의 기본 기본 순서 에 따라 쿼리 와 일치하는 처음 5개의 문서를 반환합니다. 다음 섹션에서는 지정된 순서대로 문서를 반환하는 방법에 대해 설명합니다.

지정된 순서로 문서를 반환하려면 결과를 정렬할 필드 와 정렬 방향이 포함된 문서 를 만듭니다. 1 값은 가장 낮은 값에서 가장 높은 값으로 값을 정렬하고 -1 값은 가장 높은 값에서 가장 낮은 값으로 정렬합니다. 그런 다음 mongocxx::options::find 인스턴스 에서 mongocxx::options::find::sort() 메서드를 호출하고 이 문서 를 인수로 전달합니다.

다음 예시 에서는 cuisine 값이 "Italian" 인 모든 문서를 name 필드 값의 오름차순으로 정렬하여 반환합니다.

mongocxx::options::find opts{};
opts.sort(make_document(kvp("name", 1)));
auto cursor = collection.find(make_document(kvp("cuisine", "Italian")), opts);
for(auto&& doc : cursor) {
std::cout << bsoncxx::to_json(doc) << std::endl;
}
{ "_id" : { "$oid" : "..." }, ..., "name" : "(Lewis Drug Store) Locanda Vini E Olii", "restaurant_id" : "40804423" }
{ "_id" : { "$oid" : "..." }, ..., "name" : "101 Restaurant And Bar", "restaurant_id" : "40560108" }
{ "_id" : { "$oid" : "..." }, ..., "name" : "44 Sw Ristorante & Bar", "restaurant_id" : "40698807" }
...
{ "_id" : { "$oid" : "..." }, ..., "name" : "Zucchero E Pomodori", "restaurant_id" : "41189590" }

쿼리 결과를 반환하기 전에 지정된 수의 문서를 건너뛰려면 mongocxx::options::find 클래스의 인스턴스 를 만들고 해당 skip 필드 를 설정하다 합니다. 그런 다음 mongocxx::options::find 인스턴스 를 find() 메서드에 인수로 전달합니다.

다음 예시 에서는 borough 필드 값이 "Manhattan" 인 모든 문서를 반환하고 처음 10 문서를 건너뜁니다.

mongocxx::options::find opts{};
opts.skip(10);
auto cursor = collection.find(make_document(kvp("borough", "Manhattan")), opts);
for(auto&& doc : cursor) {
std::cout << bsoncxx::to_json(doc) << std::endl;
}
{ "_id" : { "$oid" : "..." }, ..., "name" : "Cafe Metro", "restaurant_id" : "40363298" }
{ "_id" : { "$oid" : "..." }, ..., "name" : "Lexler Deli", "restaurant_id" : "40363426" }
{ "_id" : { "$oid" : "..." }, ..., "name" : "Domino'S Pizza", "restaurant_id" : "40363644" }
...

단일 mongocxx::options::find 인스턴스 의 limit, sortskip 필드를 설정하다 수 있습니다. 이렇게 하면 지정된 수의 문서를 건너뛰고 반환할 정렬된 최대 문서 수를 설정하다 수 있습니다.

다음 예시 에서는 cuisine 값이 "Italian"5 문서를 반환합니다. 결과는 처음 10 문서를 건너뛰고 name 필드 값을 기준으로 오름차순으로 정렬됩니다.

mongocxx::options::find opts{};
opts.sort(make_document(kvp("name", 1))).limit(5).skip(10);
auto cursor = collection.find(make_document(kvp("cuisine", "Italian")), opts);
for(auto&& doc : cursor) {
std::cout << bsoncxx::to_json(doc) << std::endl;
}
{ "_id" : { "$oid" : "..." }, ..., "name" : "Acqua", "restaurant_id" : "40871070" }
{ "_id" : { "$oid" : "..." }, ..., "name" : "Acqua Restaurant", "restaurant_id" : "41591488" }
{ "_id" : { "$oid" : "..." }, ..., "name" : "Acqua Santa", "restaurant_id" : "40735858" }
{ "_id" : { "$oid" : "..." }, ..., "name" : "Acquista Trattoria", "restaurant_id" : "40813992" }
{ "_id" : { "$oid" : "..." }, ..., "name" : "Acquolina Catering", "restaurant_id" : "41381423" }

참고

이러한 메서드를 호출하는 순서는 반환되는 문서를 변경하지 않습니다. 운전자 는 호출을 자동으로 재정렬하여 정렬 작업을 먼저 수행하고 건너뛰기 작업을 다음에 수행한 다음 제한 작업을 수행합니다.

문서 검색에 대한 자세한 내용은 데이터 검색 가이드 를 참조하세요.

쿼리 지정 가이드 를 참조하세요.

이 가이드에서 사용되는 메서드 또는 유형에 대해 자세히 알아보려면 다음 API 설명서를 참조하세요.

돌아가기

쿼리 지정