반환할 문서 지정
개요
이 가이드 에서는 MongoDB\Collection::find()
또는 MongoDB\Collection::findOne()
메서드에 다음 옵션을 전달하여 읽기 작업에서 반환할 문서와 유형을 지정하는 방법을 학습 수 있습니다.
limit: 쿼리 에서 반환할 최대 문서 수를 지정합니다.
sort: 반환된 문서의 정렬 순서를 지정합니다.
skip: 쿼리 결과를 반환하기 전에 건너뛸 문서 수를 지정합니다.
typeMap: 반환된 문서를 지정된 데이터 유형 으로 변환합니다.
샘플 데이터
이 가이드 의 예제에서는 Atlas 샘플 데이터 세트 의 sample_restaurants
데이터베이스 에 있는 restaurants
컬렉션 을 사용합니다. PHP 애플리케이션 에서 이 컬렉션 에 액세스 하려면 Atlas cluster 에 연결하는 MongoDB\Client
를 인스턴스화하고 $collection
변수에 다음 값을 할당합니다.
$collection = $client->sample_restaurants->restaurants;
무료 MongoDB Atlas cluster 를 생성하고 샘플 데이터 세트를 로드하는 방법을 학습 보려면 Atlas 시작하기 가이드 를 참조하세요.
Limit
읽기 작업에서 반환되는 최대 문서 수를 지정하려면 limit
옵션을 설정하는 배열 을 만들고 배열 을 MongoDB\Collection::find()
메서드에 매개 변수로 전달합니다.
다음 예시 에서는 cuisine
필드 값이 'Italian'
인 모든 레스토랑을 찾고 결과를 5
문서로 제한합니다.
$cursor = $collection->find( ['cuisine' => 'Italian'], ['limit' => 5] ); foreach ($cursor as $doc) { echo json_encode($doc), PHP_EOL; }
{"_id":{"$oid":"..."},...,"name":"Isle Of Capri Resturant","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"} {"_id":{"$oid":"..."},...,"name":"Angelo Of Mulberry St.","restaurant_id":"40365293"}
팁
앞의 예시 에서는 데이터베이스 에서의 기본 기본 순서 에 따라 쿼리 와 일치하는 처음 5개의 문서를 반환합니다. 다음 섹션에서는 지정된 순서대로 문서를 반환하는 방법에 대해 설명합니다.
Sort
지정된 순서로 문서를 반환하려면 sort
옵션을 설정하는 배열 을 만듭니다. 이 옵션을 설정할 때 결과를 정렬할 필드 와 정렬 방향을 포함합니다. 1
값은 가장 낮은 값에서 가장 높은 값으로 값을 정렬하고 -1
값은 가장 높은 값에서 가장 낮은 값으로 정렬합니다. 그런 다음 배열 을 MongoDB\Collection::find()
또는 MongoDB\Collection::findOne()
메서드에 매개 변수로 전달합니다.
다음 예시 에서는 cuisine
값이 'Italian'
인 모든 문서를 name
필드 값의 오름차순으로 정렬하여 반환합니다.
$cursor = $collection->find( ['cuisine' => 'Italian'], ['sort' => ['name' => 1]] ); foreach ($cursor as $doc) { echo json_encode($doc), PHP_EOL; }
{"_id":{"$oid":"..."},...,"name":"44 Sw Ristorante & Bar","restaurant_id":"40698807"} {"_id":{"$oid":"..."},...,"name":"900 Park","restaurant_id":"41707964"} {"_id":{"$oid":"..."},...,"name":"A Voce","restaurant_id":"41434084"} ... {"_id":{"$oid":"..."},...,"name":"Zucchero E Pomodori","restaurant_id":"41189590" }
Skip
쿼리 결과를 반환하기 전에 지정된 수의 문서를 건너뛰려면 skip
옵션을 설정하는 배열 을 만들고 배열 을 MongoDB\Collection::find()
또는 MongoDB\Collection::findOne()
메서드에 매개 변수로 전달합니다.
다음 예시 에서는 borough
필드 값이 'Manhattan'
인 모든 문서를 반환하고 처음 10
문서를 건너뜁니다.
$cursor = $collection->find( ['borough' => 'Manhattan'], ['skip' => 10] ); foreach ($cursor as $doc) { echo json_encode($doc), PHP_EOL; }
{"_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"} ...
제한, 정렬 및 건너뛰기 결합
단일 옵션 배열 에서 limit
, sort
및 skip
옵션을 설정하다 하고 배열 을 읽기 작업에 매개 변수로 전달할 수 있습니다. 이렇게 하면 지정된 수의 문서를 건너뛰고 반환할 정렬된 최대 문서 수를 설정하다 수 있습니다.
다음 예시 에서는 cuisine
값이 'Italian'
인 5
문서를 반환합니다. 결과는 처음 10
문서를 건너뛰고 name
필드 값을 기준으로 오름차순으로 정렬됩니다.
$options = [ 'sort' => ['name' => 1], 'limit' => 5, 'skip' => 10, ]; $cursor = $collection->find(['cuisine' => 'Italian'], $options); foreach ($cursor as $doc) { echo json_encode($doc), PHP_EOL; }
{"_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"}
참고
이러한 메서드를 호출하는 순서는 반환되는 문서를 변경하지 않습니다. MongoDB PHP 라이브러리는 호출을 자동으로 재정렬하여 정렬 작업을 먼저 수행하고 건너뛰기 작업을 수행한 다음 제한 작업을 수행합니다.
반환 유형 지정
읽기 작업에서 반환된 문서의 데이터 유형 을 사용자 지정하려면 배열 매개변수에 typeMap
옵션을 전달하면 됩니다.
기본값 으로 MongoDB\Client
, MongoDB\Database
또는 MongoDB\Collection
인스턴스 에서 호출된 메서드는 다음 유형 맵을 사용합니다.
[ 'array' => 'MongoDB\Model\BSONArray', 'document' => 'MongoDB\Model\BSONDocument', 'root' => 'MongoDB\Model\BSONDocument', ]
이 기본값 유형 맵은 다음과 같은 변환을 수행합니다.
MongoDB\Model\BSONArray
객체에 대한 배열MongoDB\Model\BSONDocument
객체에 대한 최상위 및 포함된 BSON 문서
사용자 지정 유형 맵에서는 MongoDB\BSON\Unserializable
, array
, stdClass
및 object
유형을 구현하는 모든 유형에 대한 변환을 지정할 수 있습니다.
예시
다음 예시 에서는 cuisine
값이 'Hawaiian'
인 모든 문서를 반환하고 문서를 배열 값으로 변환하는 typeMap
옵션을 지정합니다.
$options = [ 'typeMap' => [ 'root' => 'array', 'document' => 'array' ] ]; $cursor = $collection->find(['cuisine' => 'Hawaiian'], $options); foreach ($cursor as $doc) { print_r($doc) . PHP_EOL; }
Array ( [_id] => MongoDB\BSON\ObjectId Object ( [oid] => ... ) [address] => Array ( ... ) [borough] => Manhattan [cuisine] => Hawaiian [grades] => Array ( ... ) [name] => Makana [restaurant_id] => 41509012 ) ...
추가 정보
문서 검색에 대한 자세한 내용은 데이터 검색 가이드 를 참조하세요.
쿼리 지정 가이드 를 참조하세요.
API 문서
이 가이드에서 사용되는 메서드 또는 유형에 대해 자세히 알아보려면 다음 API 설명서를 참조하세요.