No MongoDB, você pode criar um índice em uma coleção usando o
createIndex()
método, o createIndexes()
ou o método createIndexes
comando de administração. O createIndex()
Método
O
db.collection.createIndex()
O método cria um índice na coleção especificada. É um wrapper para o createIndexes
comando de administração. Exemplo:
db.pets.createIndex( { weight: -1 } )
Isso cria um índice na coleção de animais de estimação. É um índice descendente no
weight
campo. Sabemos que é decrescente porque especificamos -1
. Se tivéssemos especificado 1
seria ascendente. Um índice composto é aquele definido em vários campos. Você pode criar um índice composto separando cada campo com uma vírgula.
Exemplo:
db.pets.createIndex( { name: 1, type: -1 } )
Isso cria um índice composto no
name
campo (em ordem crescente) e o type
campo (em ordem decrescente). Os createIndexes()
Método
O
db.collection.createIndexes()
O método cria um ou mais índices em uma coleção Este método também é um wrapper para o createIndexes
comando de administração. Quando você cria índices com o
createIndexes()
método, você precisa fornecer os campos em uma matriz. Você precisa fazer isso mesmo se estiver criando apenas um único índice. Exemplo:
db.pets.createIndexes( [ { weight: -1 } ] )
Isso faz a mesma coisa que o primeiro exemplo faz. Ele cria um índice descendente no
weight
campo. Para criar vários índices, separe o documento de cada índice por uma vírgula.
Exemplo:
db.pets.createIndexes( [ { name: 1 }, { weight: -1 } ] )
Você também pode criar índices compostos com
createIndexes()
. Para fazer isso, basta definir o índice composto no documento para esse índice. Portanto, poderíamos fazer o seguinte:
db.pets.createIndexes( [ { name: 1, type: -1 }, { weight: -1 } ] )
Isso cria um índice composto para o
name
e type
campos e um índice separado para o weight
campo. Os createIndexes
Comando
O
createIndexes
comando de administração cria um ou mais índices em uma coleção Os dois métodos anteriores são wrappers em torno deste comando. Portanto, podemos usar o
createIndexes
comando para criar os índices que fizemos nos exemplos anteriores. Aqui está um exemplo de como criar um índice no
name
campo:db.runCommand(
{
createIndexes: "pets",
indexes: [
{
key: { "name" : 1 },
name: "idx_name_1"
}
]
}
)
Nos exemplos anteriores, deixamos o MongoDB nomear nossos índices, mas neste caso nomeamos o índice
idx_name_1
. Aqui está um exemplo de criação de vários índices:
db.runCommand(
{
createIndexes: "pets",
indexes: [
{
key: { "name" : 1, type: -1 },
name: "idx_name_1_type_-1"
},
{
key: { "weight" : -1 },
name: "idx_weight_-1"
}
]
}
)
Neste caso, o primeiro índice é um índice composto no
name
e type
campos, e nós o nomeamos idx_name_1_type_-1
. O segundo índice está no
weight
campo e nós o chamamos de idx_weight_-1
. Índices curinga
Todas as três abordagens acima suportam índices curinga a partir do MongoDB 4.2 (o
featureCompatibilityVersion
deve ser pelo menos 4.2
para criar índices curinga). Índices curinga são úteis para coleções que contêm dados não estruturados com campos diferentes em hierarquias diferentes.
Consulte Como criar um índice curinga no MongoDB para obter exemplos.
Documentação do MongoDB
Abaixo estão os links para a documentação do MongoDB para cada um dos itens acima:
db.collection.createIndex()
db.collection.createIndexes()
createIndexes