No MongoDB, o
dropIndexes() O método permite descartar um ou mais índices de uma coleção. Para eliminar um único índice, passe o nome do índice ou seu documento de definição/especificação. Se for um índice de texto, você só pode especificar o nome do índice.
Para eliminar vários índices, passe os nomes dos índices em uma matriz.
Para eliminar todos os índices (exceto o
_id index), não passe nenhum argumento. Exemplos de índices
Suponha que tenhamos uma coleção chamada
pets . Podemos usar getIndexes() para ver quais índices ele tem:db.pets.getIndexes() Resultado:
[
{
"v" : 2,
"key" : {
"_id" : 1
},
"name" : "_id_"
},
{
"v" : 2,
"key" : {
"type" : 1
},
"name" : "type_1"
},
{
"v" : 2,
"key" : {
"name" : 1
},
"name" : "name_1",
"hidden" : true
},
{
"v" : 2,
"key" : {
"weight" : -1
},
"name" : "weight_-1"
}
] Neste caso, temos quatro índices. O primeiro é o índice padrão para o
_id campo. Esse índice é criado automaticamente quando você cria uma coleção e não pode ser descartado. Os outros três índices podem ser descartado.
Solte um único índice
Para eliminar um único índice, passe o nome do índice ou seu documento de especificação.
Exemplo:
db.pets.dropIndexes("weight_-1") Nesse caso, estamos passando o nome do índice.
A execução disso resulta na seguinte saída:
{ "nIndexesWas" : 4, "ok" : 1 } Isso nos diz que o índice foi descartado.
Alternativamente, poderíamos ter descartado o índice passando seu documento de especificação:
db.pets.dropIndexes( { "weight" : -1 } ) Eliminar vários índices
Se você quiser eliminar vários índices, mas não todos os índices, passe os nomes dos índices em uma matriz.
Exemplo:
db.pets.dropIndexes( [ "type_1", "name_1" ]) Resultado:
{ "nIndexesWas" : 3, "ok" : 1 } Nesta fase, vamos verificar novamente nossa lista de índices:
db.pets.getIndexes() Resultado:
[ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" } ] Como esperado, três índices foram excluídos e resta apenas um (e não pode ser excluído).
Retirar todos os índices
Você pode eliminar todos os índices chamando o método
dropIndexes() método sem argumentos. Para este exemplo, vamos descartar os índices em uma coleção chamada
products . Esta coleção tem quatro índices da seguinte forma:db.products.getIndexes() Resultado:
[
{
"v" : 2,
"key" : {
"_id" : 1
},
"name" : "_id_"
},
{
"v" : 2,
"key" : {
"product.$**" : 1
},
"name" : "product.$**_1"
},
{
"v" : 2,
"key" : {
"sizes" : 1
},
"name" : "sizes_1"
},
{
"v" : 2,
"key" : {
"stock" : -1
},
"name" : "stock_-1"
}
] Agora vamos eliminar todos os índices:
db.products.dropIndexes() Resultado:
{
"nIndexesWas" : 4,
"msg" : "non-_id indexes dropped for collection",
"ok" : 1
} Como a mensagem aludia, todos os índices foram descartados, exceto o
_id índice. Este índice não pode ser descartado. Vamos verificar os índices novamente.
db.products.getIndexes() Resultado:
[ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" } ] Como esperado, o
_id index é o único que resta. O
dropIndexes() método é um wrapper em torno do dropIndexes comando. Documentação do MongoDB
Consulte a documentação do MongoDB para obter mais informações sobre o
dropIndexes() método.