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

MongoDB\Collection::createIndexes()

Nesta página

  • Definição
  • Parâmetros
  • Valores de retorno
  • Erros/exceções
  • Comportamento
  • Exemplo
  • Veja também
MongoDB\Collection::createIndexes()

Crie um ou mais índices para a collection.

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

Os índices a serem criados na collection.

Por exemplo, o seguinte especifica um índice único no campo username e um índice composto nos campos email e createdAt :

[
[ 'key' => [ 'username' => -1 ], 'unique' => true ],
[ 'key' => [ 'email' => 1, 'createdAt' => 1 ] ],
]
$options : array

Uma array especificando as opções desejadas.

Nome
Tipo
Descrição
comentário
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.

Escreva preocupação

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.

Os nomes dos índices criados como um array de strings.

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).

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' ],
]

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.

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

Voltar

createIndex()

Próximo

createSearchIndex()