AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

MongoDB\Collection::createIndexes()

MongoDB\Collection::createIndexes()

collection에 대해 하나 이상의 인덱스를 만듭니다.

function createIndexes(
array $indexes,
array $options = []
): string[]
$indexes : 배열

컬렉션에 생성할 인덱스입니다.

예를 들어 다음은 username 필드에 고유 인덱스를 지정하고 emailcreatedAt 필드에 복합 인덱스를 지정합니다.

[
[ '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에 추가 되었습니다.:

쓰기 고려

작업에 사용할 고려를 씁니다 . 기본값은 컬렉션의 쓰기 고려입니다.

트랜잭션 의 일부로 개별 작업에 대한 쓰기 고려 (write concern) 지정할 수 없습니다. 대신 트랜잭션시작할 때 옵션을 writeConcern 설정하다 .

문자열 배열로 생성된 인덱스의 이름입니다.

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

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

확장 수준의 기타 오류에 대한MongoDB\ 드라이버\Exception\RuntimeException (예: 연결 오류).

$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에 대해 두 개의 인덱스를 만듭니다. 하나의 인덱스는 boroughcuisine 필드에 대한 복합 인덱스이고, 다른 하나는 사용자 지정 이름을 가진 loc 필드에 대한 2dsphere 인덱스입니다.

<?php
$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"
}