MongoDB\Collection::createIndexes()
Definição
Parâmetros
$indexes
: arrayOs índices a serem criados na collection.
Por exemplo, o seguinte especifica um índice único no campo
username
e um índice composto nos camposemail
ecreatedAt
:[ [ 'key' => [ 'username' => -1 ], 'unique' => true ], [ 'key' => [ 'email' => 1, 'createdAt' => 1 ] ], ] $options
: arrayUma array especificando as opções desejadas.
NomeTipoDescriçãocomment
misto
Permite que os usuários especifiquem um comentário arbitrário para ajudar a rastrear a operação por meio do profiler do banco de dados, saída currentOp e registros.
Esta opção está disponível desde o MongoDB 4.4 e resultará em uma exceção no momento da execução se for especificada para uma versão mais antiga do servidor.
Novidade na versão 1.13.
commitQuorum
string|inteiro
Especifica quantos membros portadores de dados de um conjunto de réplicas, incluindo o primário, devem concluir as construções de índices com êxito antes que o primário marque os índices como prontos.
Essa opção aceita os mesmos valores para o campo
w
em uma referência de escrita mais"votingMembers"
, que indica todos os nós portadores de dados de votação.Isto não é suportado para versões de servidor anteriores à 4.4 e resultará em uma exceção no tempo de execução se utilizado.
Novidade na versão 1.7.
maxTimeMS
inteiro
O limite de tempo cumulativo em milésimos de segundo para operações de processamento no cursor. O MongoDB aborta a operação o mais cedo possível após o ponto de interrupção.
Novidade na versão 1.3.
session
Sessão do cliente a ser associada à operação.
Novidade na versão 1.3.
writeConcern
Preocupação de gravação a ser usada na operação. O padrão é a preocupação de gravação da coleção.
Não é possível especificar uma preocupação de gravação para operações individuais como parte de uma transação. Em vez disso, defina a opção
writeConcern
ao iniciar a transação.
Return Values
Os nomes dos índices criados como um array de strings.
Erros/exceções
MongoDB\Exception\UnsupportedException
se as opções forem usadas e não aceitas pelo servidor selecionado (p. ex., collation
, readConcern
, writeConcern
).
MongoDB\Exception\InvalidArgumentException
para erros relacionados à análise de parâmetros ou opções.
MongoDB\Driver\Exception\RuntimeException para outros erros no nível da extensão (por exemplo erros de conexão).
Comportamento
$indexes
parameter
O parâmetro $indexes
é uma array de documentos de especificação de índices. Cada elemento em $indexes
deve ser uma array ou objeto com um campo key
, que corresponde ao parâmetro $key
de createIndex()
. A array ou objeto pode incluir outros campos que correspondem às opções de índice aceitas por createIndex()
. Para obter uma lista completa das opções de criação de índice suportadas, consulte a referência de comando createIndexes no manual MongoDB.
Por exemplo, o seguinte parâmetro $indexes
cria dois índices. O primeiro é um índice único ascendente no campo username
e o segundo é um índice 2dsphere no campo loc
com um nome personalizado:
[ [ 'key' => [ 'username' => 1 ], 'unique' => true ], [ 'key' => [ 'loc' => '2dsphere' ], 'name' => 'geo_index' ], ]
Exemplo
O exemplo seguinte cria dois índices na collection restaurants
no reconhecimento de data center test
. Um índice é um índice composto nos campos borough
e cuisine
e o outro é o índice 2dsphere no campo loc
com um nome personalizado.
$collection = (new MongoDB\Client)->selectCollection('test', 'restaurants'); $indexNames = $collection->createIndexes([ [ 'key' => [ 'borough' => 1, 'cuisine' => 1] ], [ 'key' => [ 'loc' => '2dsphere'], 'name' => 'geo_index' ], ]); var_dump($indexNames);
A saída seria então semelhante a:
array(2) { [0]=> string(19) "borough_1_cuisine_1" [1]=> string(9) "geo_index" }
Veja também
Referência do comando createIndexes no manual MongoDB
Documentação de índices no Manual do MongoDB