Menu Docs
Página inicial do Docs
/ / /
Manual da Biblioteca PHP
/

Índices

Os índices suportam a execução eficiente de query no MongoDB. Sem índices, o MongoDB deve executar uma varredura de coleção, ou seja, digitalizar todos os documentos em uma coleção, para selecionar os documentos que correspondem à declaração de query. Se existir um índice apropriado para uma query, o MongoDB poderá usar o índice para limitar o número de documentos que deve inspecionar.

O driver PHP suporta o gerenciamento de índices por meio da MongoDB\Collection classe , que implementa o MongoDB Gerenciamento de índices e enumeração de índices especificações.

Este documento fornece uma introdução à criação, lista e eliminação de índices usando a Biblioteca PHP do MongoDB. A referência Índices do Manual do MongoDB fornece informações mais completas sobre indexação no MongoDB.

Crie índices com os métodos MongoDB\Collection::createIndex() ou MongoDB\Collection::createIndexes() . Consulte a referência do método para obter mais detalhes sobre cada método.

O exemplo seguinte cria um índice ascendente no campo state utilizando o método createIndex() :

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

Ao criar um índice, o método retorna seu nome, que é gerado automaticamente a partir de sua especificação. O exemplo acima produziria algo semelhante a:

string(7) "state_1"

O método MongoDB\Collection::listIndexes() fornece informações sobre os índices em uma collection. O método MongoDB\Collection::listIndexes() retorna um iterador de objetos MongoDB\Model\IndexInfo , que você pode utilizar para visualizar informações sobre cada índice. Consulte a referência do método para obter mais detalhes.

O exemplo a seguir lista todos os índices na collection zips no reconhecimento de data center test :

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

A saída se assemelha a:

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"
}

O método MongoDB\Collection::dropIndex() permite que você descarte um único índice enquanto MongoDB\Collection::dropIndexes() descarta todos os índices em uma collection. Consulte a referência do método para obter mais detalhes sobre cada método.

O exemplo a seguir elimina um único índice por seu nome, state_1:

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

O resultado da operação se assemelharia a:

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

Voltar

GridFS

Próximo

Iteração de cursor tailable