정의
매개변수
$indexes: 배열컬렉션에 생성할 인덱스입니다.
예를 들어 다음은
username필드에 고유 인덱스를 지정하고email및createdAt필드에 복합 인덱스를 지정합니다.[ [ 'key' => [ 'username' => -1 ], 'unique' => true ], [ 'key' => [ 'email' => 1, 'createdAt' => 1 ] ], ] $options: 배열원하는 옵션을 지정하는 배열입니다.
이름유형설명comment
혼합
사용자가 데이터베이스 프로파일러, currentOp 출력 및 로그를 통해 작업을 추적하는 데 도움이 되는 임의의 주석을 지정할 수 있습니다.
이 옵션은 MongoDB 4.4부터 사용할 수 있으며 이전 서버 버전에 대해 지정된 경우 실행 시 예외가 발생합니다.
버전 1.13에 추가 되었습니다.:
commitQuorum
문자열|정수
프라이머리가 인덱스를 준비됨으로 표시하기 전에 프라이머리를 포함한 복제본 세트의 데이터 보유 노드가 인덱스 빌드를 성공적으로 완료해야 하는 멤버의 수를 지정합니다.
이 옵션은 쓰기 고려 (write concern)의
w필드에 더하기"votingMembers"에 대해 동일한 값을 허용하며, 이는 모든 투표 데이터 보유 노드를 나타냅니다.이 기능은 4.4 이전의 서버 버전에서는 지원되지 않으며, 사용 시 실행 시 예외가 발생합니다.
버전 1.7에 추가 되었습니다.:
최대 시간 (MS)
integer
커서에서 작업을 처리하는 데 걸리는 누적 시간 제한(밀리초)입니다. MongoDB는 중단 지점 이후 가장 빠른 시점에 작업을 중단합니다.
버전 1.3에 추가 되었습니다.:
Session
작업과 연결할 클라이언트 세션입니다.
버전 1.3에 추가 되었습니다.:
쓰기 고려
Return Values
문자열 배열로 생성된 인덱스의 이름입니다.
오류/예외
옵션이 사용되지만 선택한 서버에서 지원되지 않는 경우 MongoDB\Exception\UnsupportedException입니다(예: collation, readConcern, writeConcern).
MongoDB\Exception\InvalidArgumentException 매개변수 또는 옵션의 구문 분석과 관련된 오류의 경우입니다.
확장 수준의 기타 오류에 대한MongoDB\ 드라이버\Exception\RuntimeException (예: 연결 오류).
행동
$indexes parameter
$indexes 매개변수는 인덱스 사양 문서의 배열입니다. $indexes 의 각 요소는 그 자체로 key 필드가 있는 배열 또는 객체여야 하며, 이는 createIndex() 의 $key 매개변수에 해당합니다. 배열 또는 객체에는 createIndex() 에서 허용하는 인덱스 옵션에 해당하는 다른 필드가 포함될 수 있습니다. 지원되는 인덱스 생성 옵션의 전체 목록은 MongoDB 매뉴얼의 createIndexes 명령 참조를 참조하세요.
예를 들어 다음 $indexes 매개변수는 두 개의 인덱스를 생성합니다. 첫 번째는 username 필드의 오름차순 고유 인덱스이고 두 번째는 사용자 지정 이름을 가진 loc 필드의 2dsphere 인덱스입니다.
[ [ 'key' => [ 'username' => 1 ], 'unique' => true ], [ 'key' => [ 'loc' => '2dsphere' ], 'name' => 'geo_index' ], ]
예시
다음 예제에서는 test 데이터베이스의 restaurants collection에 대해 두 개의 인덱스를 만듭니다. 하나의 인덱스는 borough 및 cuisine 필드에 대한 복합 인덱스이고, 다른 하나는 사용자 지정 이름을 가진 loc 필드에 대한 2dsphere 인덱스입니다.
$collection = (new MongoDB\Client)->getCollection('test', 'restaurants'); $indexNames = $collection->createIndexes([ [ 'key' => [ 'borough' => 1, 'cuisine' => 1] ], [ 'key' => [ 'loc' => '2dsphere'], 'name' => 'geo_index' ], ]); var_dump($indexNames);
이 경우 출력은 다음과 유사합니다:
array(2) { [0]=> string(19) "borough_1_cuisine_1" [1]=> string(9) "geo_index" }
다음도 참조하세요.
MongoDB 매뉴얼의 createIndexes 명령 참조
MongoDB 매뉴얼의 인덱스 문서