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

MongoDB\Collection::createIndexes()

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

comment

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.

Para usar esta opção, você deve se conectar ao MongoDB 6.0 ou posterior. Se você estiver conectado a uma versão anterior, o servidor retornará uma exceção no tempo de execução.

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.

Para usar esta opção, você deve se conectar ao MongoDB 6.0 ou posterior. Se você estiver conectado a uma versão anterior, o servidor retornará uma exceção no tempo de execução.

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.

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)->getCollection('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()

Nesta página