Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
Propiedades

Hidden Indexes

Los índices ocultos no son visibles para los Planificador de consultas y no se puede utilizar para respaldar una consulta.

Al ocultar un índice del planificador, puede evaluar el impacto potencial de eliminarlo sin eliminarlo realmente. Si el impacto es negativo, puede mostrarlo en lugar de tener que volver a crearlo.

Aparte de estar ocultos en el planificador, los índices ocultos se comportan como índices no ocultos. Es decir,

Para crear un índice de hidden, utiliza el método db.collection.createIndex() con la opción hidden configurada en true.

Nota

Para usar la opción hidden con db.collection.createIndex(), debes tener featureCompatibilityVersion configurado en 5.0 o superior.

Por ejemplo, la siguiente operación crea un índice ascendente oculto en el campo borough:

db.addresses.createIndex(
{ borough: 1 },
{ hidden: true }
);

Para verificar, ejecute en db.collection.getIndexes() la addresses colección:

db.addresses.getIndexes()

La operación devuelve la siguiente información:

[
{
"v" : 2,
"key" : {
"_id" : 1
},
"name" : "_id_"
},
{
"v" : 2,
"key" : {
"borough" : 1
},
"name" : "borough_1",
"hidden" : true
}
]

La opción de índice hidden solo se devuelve si el valor es true.

Nota

Para ocultar un índice existente, puedes usar el comando collMod o el asistente mongosh db.collection.hideIndex().

Por ejemplo, crear un índice sin ocultar:

db.restaurants.createIndex( { borough: 1, ratings: 1 } );

Para ocultar el índice, puedes especificar:

  • el documento de especificación de la clave de índice para el método db.collection.hideIndex():

    db.restaurants.hideIndex( { borough: 1, ratings: 1 } ); // Specify the index key specification document
  • el nombre del índice al método db.collection.hideIndex():

    db.restaurants.hideIndex( "borough_1_ratings_1" ); // Specify the index name

Para verificar, ejecute en db.collection.getIndexes() la restaurants colección:

db.restaurants.getIndexes()

La operación devuelve la siguiente información:

[
{
"v" : 2,
"key" : {
"_id" : 1
},
"name" : "_id_"
},
{
"v" : 2,
"key" : {
"borough" : 1,
"ratings" : 1
},
"name" : "borough_1_ratings_1",
"hidden" : true
}
]

La opción de índice hidden solo se devuelve si el valor es true.

Para mostrar un índice oculto, puede utilizar el comando collMod o el asistente mongosh db.collection.unhideIndex(). Se puede especificar cualquiera de las siguientes opciones:

  • el documento de especificación de la clave de índice para el método db.collection.unhideIndex():

    db.restaurants.unhideIndex( { borough: 1, city: 1 } ); // Specify the index key specification document
  • el nombre del índice al método db.collection.unhideIndex():

    db.restaurants.unhideIndex( "borough_1_ratings_1" ); // Specify the index name

Para verificar, ejecute en db.collection.getIndexes() la restaurants colección:

db.restaurants.getIndexes()

La operación devuelve la siguiente información:

[
{
"v" : 2,
"key" : {
"_id" : 1
},
"name" : "_id_"
},
{
"v" : 2,
"key" : {
"borough" : 1,
"ratings" : 1
},
"name" : "borough_1_ratings_1"
}
]

La opción de índice hidden ya no aparece como parte del índice borough_1_ratings_1, ya que el campo solo se muestra si el valor es true.

Debido a que los índices se mantienen completamente mientras están ocultos, el índice está inmediatamente disponible para su uso una vez que se revela.

Volver

Índices que no discriminan entre mayúsculas y minúsculas

En esta página