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

색인

인덱스는 MongoDB에서 쿼리를 효율적으로 실행할 수 있도록 지원합니다. 인덱스가 없으면 MongoDB는 collection 스캔, 즉 collection의 모든 문서를 스캔하여 쿼리와 일치하는 문서를 선택해야 합니다. 쿼리에 적합한 인덱스가 있는 경우 MongoDB는 이 인덱스를 사용하여 검사해야 하는 문서 수를 제한할 수 있습니다.

PHP 드라이버는 MongoDB의 크로스 드라이버 인덱스MongoDB\Collection 관리 를 구현하는 클래스를 통해 인덱스 관리를 지원합니다. 및 인덱스 열거 사양.

이 문서에서는 MongoDB PHP 라이브러리를 사용하여 인덱스를 생성, 나열 및 삭제하는 방법을 소개합니다. MongoDB 매뉴얼의 인덱스 참조는 MongoDB의 인덱싱에 대한 자세한 정보를 제공합니다.

MongoDB\Collection::createIndex() 또는 MongoDB\Collection::createIndexes() 메서드를 사용하여 인덱스를 생성합니다. 각 메서드에 대한 자세한 내용은 메서드 참고 자료를 참조하세요.

다음 예시에서는 createIndex() 메서드를 사용하여 state 필드에 오름차순 인덱스를 생성합니다.

<?php
$collection = (new MongoDB\Client)->test->zips;
$result = $collection->createIndex(['state' => 1]);
var_dump($result);

인덱스를 생성하면 메서드는 사양에서 자동으로 생성된 이름을 반환합니다. 위 예제에서는 다음과 유사한 내용이 출력됩니다.

string(7) "state_1"

MongoDB\Collection::listIndexes() 메서드는 collection의 인덱스에 대한 정보를 제공합니다. MongoDB\Collection::listIndexes() 메서드는 각 인덱스에 대한 정보를 보는 데 사용할 수 있는 MongoDB\Model\IndexInfo 객체의 반복자를 반환합니다. 자세한 내용은 메서드 참고 자료를 참조하세요.

다음 예제에서는 test 데이터베이스의 zips collection에 있는 모든 인덱스를 나열합니다.

<?php
$collection = (new MongoDB\Client)->test->zips;
foreach ($collection->listIndexes() as $indexInfo) {
var_dump($indexInfo);
}

출력은 다음과 유사합니다:

object(MongoDB\Model\IndexInfo)#10 (4) {
["v"]=>
int(1)
["key"]=>
array(1) {
["_id"]=>
int(1)
}
["name"]=>
string(4) "_id_"
["ns"]=>
string(9) "test.zips"
}
object(MongoDB\Model\IndexInfo)#13 (4) {
["v"]=>
int(1)
["key"]=>
array(1) {
["state"]=>
int(1)
}
["name"]=>
string(7) "state_1"
["ns"]=>
string(9) "test.zips"
}

MongoDB\Collection::dropIndex() 메서드를 사용하면 단일 인덱스를 삭제하고 MongoDB\Collection::dropIndexes() } 메서드를 사용하면 collection의 모든 인덱스를 삭제할 수 있습니다. 각 메서드에 대한 자세한 내용은 메서드 참고 자료를 참조하세요.

다음 예에서는 state_1 이라는 이름으로 단일 인덱스를 삭제합니다.

<?php
$collection = (new MongoDB\Client)->test->zips;
$result = $collection->dropIndex('state_1');
var_dump($result);

작업 출력은 다음과 유사합니다.

object(MongoDB\Model\BSONDocument)#11 (1) {
["storage":"ArrayObject":private]=>
array(2) {
["nIndexesWas"]=>
int(2)
["ok"]=>
float(1)
}
}

돌아가기

GridFS.

다음

Tailable Cursor 반복