MongoDB List todos los índices para una base de datos

MongoDB List todos los índices para una base de datos
Podemos usar el método ListIndexes para obtener todos los índices en una colección determinada. Este método es un comando de base de datos y se admite en un controlador específico del lenguaje.

La sintaxis del comando es como se muestra en lo siguiente:

db.runcommand (

listIndexes: "",
cursor: batchSize: ,
comentario:

)

Los parámetros compatibles son los siguientes:

  1. Collection_name: especifica el nombre de la colección de destino como un tipo de cadena.
  2. BatchSize: especifica el tamaño de lotes para el cursor.
  3. Comentario - Comentario del usuario para el comando especificado.

Considere la siguiente consulta de ejemplo:

db.runCommand (listIndexes: "Hulu")

La consulta dada invoca el comando listindexes en la colección "hulu". Esto debería devolver todos los índices para la colección específica como se muestra en la siguiente salida:


cursor:
ID: Long ("0"),
NS: 'Entretenimiento.hulu ',
primer lote: [
V: 2, clave: _id: 1, nombre: '_id_',

V: 2,
Clave: Release_year: 1,
Nombre: 'Release_year_index',
escaso: falso

]
,
OK: 1

Como no especificamos el tamaño de lote para el cursor, el comando devuelve todos los resultados del comando listindexes.

Para mostrar solo un resultado, podemos establecer el parámetro BatchSize en 1 como se muestra en lo siguiente:

db.runCommand (listIndexes: "Hulu", cursor: batchSize: 1)

En este caso, el comando debe devolver una salida como se muestra en el siguiente:


cursor:
ID: Long ("6609474838031556340"),
NS: 'Entretenimiento.hulu ',
FirstBatch: [V: 2, Key: _id: 1, nombre: '_id_']
,
OK: 1

Puede aumentar el lote para obtener más información sobre los índices en la colección.

MongoDB muestra todos los índices en una base de datos

Supongamos que deseamos mostrar todos los índices en todas las colecciones de una base de datos especificada. Para eso, podemos usar la función foreach para iterar sobre cada colección en la base de datos y enumerar sus índices correspondientes.

Una consulta de ejemplo es como se muestra en lo siguiente:

db.getCollectionNames ().foreach (función (colección) all_indexes = db.getCollection (colección).listIndexes (); print ("índices de" + colección + ":->"); printjson (all_indexes); );

La consulta anterior comienza obteniendo todos los nombres de colección en una base de datos dada utilizando el método getCollectionNames (). Luego iteramos sobre cada colección en la base de datos y las pasamos como parámetros del método getIndexes ().

Finalmente, guardamos cada resultado en la variable all_indexes. Para obtener una salida legible por humanos, utilizamos los métodos printjson para un mejor formateo.

Esto debería devolver todas las colecciones y sus índices correspondientes como se muestra en lo siguiente:

[
V: 2, clave: _id: 1, nombre: '_id_',

V: 2,
clave: _fts: 'text', _ftsx: 1,
Nombre: 'Calificación',
escaso: falso,
Peso: Calificación: 1,
default_language: 'inglés',
lenguaje_override: 'idioma',
TextIndexversion: 3

]
Índices de amazon_prime:->
[
V: 2, clave: _id: 1, nombre: '_id_',

V: 2,
clave: _fts: 'text', _ftsx: 1,
Nombre: 'content_type',
escaso: falso,
Peso: Tipo: 1,
default_language: 'inglés',
lenguaje_override: 'idioma',
TextIndexversion: 3

]
Índices de hulu:->
[
V: 2, clave: _id: 1, nombre: '_id_',

V: 2,
Clave: Release_year: 1,
Nombre: 'Release_year_index',
escaso: falso

]

En nuestro ejemplo, tenemos tres colecciones, cada una con un índice como se muestra en la matriz de salida anterior.

Conclusión

En esta publicación, discutimos cómo usar el método listIndexes () para obtener la lista de todos los índices en una colección dada. También discutimos cómo crear un script simple para obtener todos los índices y su colección asociada en una base de datos dada.

Codificación feliz!