문서 메뉴

문서 홈PHP 라이브러리 매뉴얼

MongoDB\GridFS\Bucket::find()

이 페이지의 내용

  • 정의
  • 매개변수
  • 반환 값
  • 오류/예외
  • 행동
  • 예제
  • 다음도 참조하세요.
MongoDB\GridFS\Bucket::find()

쿼리와 일치하는 GridFS 버킷의 파일 collection에서 문서를 찾습니다.

function find(
array|object $filter = [],
array $options = []
): MongoDB\Driver\Cursor
$filter : 배열|객체
쿼리할 문서를 지정하는 필터 기준
$options : 배열

원하는 옵션을 지정하는 배열입니다.

이름
유형
설명
허용 디스크 사용
부울
임시 파일에 쓰기를 활성화합니다. true으로 설정되면 쿼리가 dbPath 디렉토리의 _tmp 하위 디렉토리에 데이터를 쓸 수 있습니다.
allowPartialResults (영문)
부울
샤드 컬렉션에 대한 쿼리의 경우, 일부 샤드를 사용할 수 없는 경우 오류를 발생시키는 대신 mongos 의 부분 결과를 반환합니다.
batchSize
integer

첫 번째 배치에서 반환할 문서 수입니다. 기본값은 101입니다. batchSize가 0이면 커서가 설정되지만 첫 번째 배치에서는 문서가 반환되지 않습니다.

이전 유선 프로토콜 버전과 달리 find 명령의 batchSize가 1 이면 커서가 닫히지 않습니다.

코덱
MongoDB\Codec\DocumentCodec

문서를 인코딩 또는 디코딩하는 데 사용할 코덱 입니다. 이 옵션은 typeMap 옵션과 상호 배타적입니다.

기본값은 버킷의 코덱입니다. 기본 codec 옵션의 상속이 typeMap 옵션의 상속보다 우선합니다.

버전 1.17에 추가 되었습니다.

데이터 정렬
배열|객체

데이터 정렬 을 통해 사용자는 문자열 비교를 위한 언어별 규칙(예: 대소문자 및 악센트 표시 규칙)을 지정할 수 있습니다. 데이터 정렬을 지정할 때 locale 필드는 필수입니다. 다른 모든 데이터 정렬 필드는 선택 사항입니다. 필드에 대한 설명은 데이터 정렬 문서를 참조하세요.

comment
혼합

사용자가 데이터베이스 프로파일러, currentOp 출력 및 로그를 통해 작업을 추적하는 데 도움이 되는 임의의 주석을 지정할 수 있습니다.

MongoDB 4.4 버전부터는 유효한 모든 BSON type을 주석으로 설정할 수 있습니다. 이전 서버 버전에서는 문자열 값만 지원합니다.

cursorType
integer

사용할 커서 유형. cursorType는 다음과 같은 값을 지원합니다.

  • MongoDB\Operation\Find::NON_TAILABLE (기본값)

  • MongoDB\Operation\Find::TAILABLE

힌트
문자열|배열|객체

사용할 인덱스입니다. 인덱스 이름을 문자열로 지정하거나 인덱스 키 패턴을 문서로 지정합니다. 이 옵션을 지정하면 쿼리 시스템은 힌트 인덱스를 사용하는 계획만 고려합니다.

버전 1.2에 새로 추가됨.

하자
배열|객체

매개변수 이름과 값의 맵입니다. 값은 문서 필드를 참조하지 않는 상수 또는 닫힌 표현식이어야 합니다. 그런 다음 매개변수는 애그리게이션 표현식 컨텍스트에서 변수로 액세스될 수 있습니다(예: $$var).

이는 5.0 이전의 서버 버전에서는 지원되지 않으며 사용하는 경우 실행 시 예외가 발생합니다.

버전 1.13에 새로 추가되었습니다.

제한
integer

반환할 문서의 최대 개수. 지정하지 않은 경우 기본값은 '제한 없음'입니다. 0개로 제한하면 제한을 설정하지 않은 것과 동일합니다.

음수 제한은 양수 제한과 비슷하지만 결과의 단일 배치를 반환한 후 커서를 닫는다는 점이 다릅니다. 따라서 음수 제한을 사용하면 제한된 결과 집합이 단일 배치에 맞지 않는 경우 수신되는 문서 수가 지정된 제한보다 적어집니다. 클라이언트는 음수 제한을 전달함으로써 getMore를 통해 후속 배치를 요청하지 않을 것임을 서버에 알립니다.

최대
배열|객체

특정 인덱스에 대한 배타적 상한선

버전 1.2에 새로 추가됨.

maxAwaitTimeMS
integer

데이터를 사용할 수 없는 경우 서버가 getMore 작업을 차단하는 시간 제한(밀리초)을 나타내는 양의 정수 이 옵션은 cursorType이 TAILABLE_AWAIT인 경우에만 사용해야 합니다.

버전 1.2에 새로 추가됨.

maxScan
integer

쿼리를 실행할 때 스캔할 문서 또는 인덱스 키의 최대 개수.

버전 1.4부터 더 이상 사용되지 않습니다.

버전 1.2에 새로 추가됨.

최대 시간 (MS)
integer

커서에서 작업을 처리하기 위한 누적 시간 제한(밀리초)입니다. MongoDB는 다음 중단 지점에서 가장 이른 시점에 작업을 중단합니다.

배열|객체

특정 인덱스의 포괄적인 하한입니다.

버전 1.2에 새로 추가됨.

modifiers
배열|객체
쿼리의 출력 또는 동작을 수정하는 메타 연산자 입니다. 이러한 연산자는 명명된 옵션으로 대체되었습니다.
noCursorTimeout
부울
비활성 기간(10분) 후 서버가 유휴 커서의 시간 초과를 방지합니다.
oplogReplay
부울

복제본 세트에 내부적으로 사용합니다. oplogReplay를 사용하려면 필터에 다음 조건을 포함해야 합니다.

{ ts: { $gte: <timestamp> } }

MongoDB\BSON\Timestamp 클래스 참조에서는 PHP로 MongoDB의 BSON 타임스탬프 유형을 표현하는 방법이 설명되어 있습니다.

버전 1.7부터 더 이상 사용되지 않습니다.

프로젝션
배열|객체
반환된 문서에 포함할 필드를 결정하는 프로젝션 사양 입니다. MongoDB 매뉴얼의 쿼리에서 반환할 프로젝트 필드프로젝션 연산자 를 참조하세요.
readConcern

작업에 사용할 읽기 고려 입니다. 기본값은 버킷의 읽기 고려입니다.

트랜잭션의 일부로 개별 작업에 대한 읽기 고려를 지정할 수 없습니다. 대신 readConcern 트랜잭션을 시작할 때옵션을 설정합니다.

읽기 설정

작업에 사용할 읽기 설정 입니다. 기본값은 버킷의 읽기 설정입니다.

returnKey
부울

참이면 결과 문서의 인덱스 키만 반환합니다.

버전 1.2에 새로 추가됨.

세션

작업과 연결할 클라이언트 세션입니다.

버전 1.3에 새로 추가되었습니다.

showRecordId
부울

각 문서에 대한 레코드 식별자를 반환할지 여부를 결정합니다. 참이면 반환된 문서에 $recordId 필드를 추가합니다.

버전 1.2에 새로 추가됨.

건너뛰기
integer
건너뛸 문서 수입니다. 기본값은 0입니다.
정렬
배열|객체
결과의 순서를 지정하는 정렬 사양입니다.
스냅샷
부울

중간 쓰기 작업으로 인해 커서가 문서를 두 번 이상 반환하는 것을 방지합니다.

버전 1.4부터 더 이상 사용되지 않습니다.

버전 1.2에 새로 추가됨.

typeMap
배열

유형 맵 커서에 적용하여 BSON 문서가 PHP 값으로 변환되는 방식을 결정합니다. 기본값은 버킷의 유형 맵입니다.

MongoDB\Driver\Cursor 객체.

옵션이 사용되지만 선택한 서버에서 지원되지 않는 경우 MongoDB\Exception\UnsupportedException입니다(예: collation, readConcern, writeConcern).

MongoDB\Exception\InvalidArgumentException 매개변수 또는 옵션의 구문 분석과 관련된 오류의 경우입니다.

MongoDB\Driver\Exception\RuntimeException 드라이버 수준의 기타 오류(예: 연결 오류).

쿼리 기준을 평가할 때 MongoDB는 BSON types에 대한 자체 비교 규칙 에 따라 유형과 값을 비교하며, 이는 PHP의 비교 와는 다릅니다. 및 유형 저글링 규칙. 특수 BSON 유형과 일치하는 경우 쿼리 기준은 해당 BSON 클래스 를 사용해야 합니다. 드라이버에서 (예: MongoDB\BSON\ObjectId 사용 ObjectId 와 일치시킵니다.

<?php
$bucket = (new MongoDB\Client)->test->selectGridFSBucket();
$stream = fopen('php://temp', 'w+b');
fwrite($stream, "foobar");
rewind($stream);
$bucket->uploadFromStream('b', $stream);
$cursor = $bucket->find(
['length' => ['$lte' => 6]],
[
'projection' => [
'filename' => 1,
'length' => 1,
'_id' => 0,
],
'sort' => ['length' => -1],
]
);
var_dump($cursor->toArray());

이 경우 출력은 다음과 유사합니다:

array(1) {
[0]=>
object(MongoDB\Model\BSONDocument)#3015 (1) {
["storage":"ArrayObject":private]=>
array(2) {
["filename"]=>
string(1) "b"
["length"]=>
int(6)
}
}
}
← MongoDB\GridFS\Bucket::drop()