O MongoDB fornece várias maneiras de descartar um índice ou índices.
Para eliminar um único índice, você pode usar o
dropIndex()
método. Para eliminar vários índices, você pode usar o método
dropIndexes()
método ou o dropIndexes
comando de administração. O dropIndex()
Método
Se você precisar remover apenas um índice, você pode usar o
dropIndex()
método. Este método aceita o nome do índice ou seu documento de especificação. Aqui está um exemplo de como descartar um índice usando o nome do índice:
db.bars.dropIndex("location_2dsphere")
Saída:
{ "nIndexesWas" : 3, "ok" : 1 }
Isso nos diz que o índice chamado
location_2dsphere
foi descartado com sucesso. Aqui está um exemplo de como descartar um índice passando seu documento de especificação:
db.bars.dropIndex( { "name" : 1 } )
Saída:
{ "nIndexesWas" : 2, "ok" : 1 }
Podemos ver que esse índice também foi descartado. Este índice tinha uma especificação de
{ "name" : 1 }
, que é o documento de especificação que usei ao criar o índice. O
dropIndex()
método é um wrapper em torno do dropIndexes
comando. Os dropIndexes()
Método
O
dropIndexes()
pode ser útil se você precisar descartar mais de um índice. Você também pode descartar um único índice, ele apenas tem a capacidade adicional de poder descartar vários (ou todos) índices. Este método aceita o nome do índice ou seu documento de especificação para cada um dos índices a serem descartados. Se você estiver descartando mais de um índice, deverá fornecer seus nomes/documentos de especificação em uma matriz.
Aqui está um exemplo de como descartar dois índices usando seus nomes de índice:
db.pets.dropIndexes( [ "type_1", "name_1" ])
Saída:
{ "nIndexesWas" : 3, "ok" : 1 }
Observe que, se for um índice de texto, você só pode especificar o nome do índice.
Você pode remover todos os índices (exceto o
_id
index) omitindo completamente o parâmetro:db.pets.dropIndexes()
O
dropIndexes()
método é um wrapper em torno do dropIndexes
comando. Os dropIndexes
Comando
Os
dropIndexes
O comando permite que você faça a mesma coisa que o dropIndexes()
método. Como mencionado, o dropIndexes()
método é um wrapper em torno do dropIndexes
comando Aqui está um exemplo de como descartar um único índice:
db.runCommand( { dropIndexes: "posts", index: "title_1" })
Saída:
{ "nIndexesWas" : 4, "ok" : 1 }
E aqui está um exemplo de como descartar vários índices:
db.runCommand( {
dropIndexes: "posts",
index: [ "tags_1", "body_text" ]
})
Resultado:
{ "nIndexesWas" : 3, "ok" : 1 }
Para eliminar todos os índices (exceto o
_id
index), use o curinga asterisco (*
):db.runCommand( { dropIndexes: "posts", index: "*" })
Resultado:
{ "nIndexesWas" : 4, "msg" : "non-_id indexes dropped for collection", "ok" : 1 }