Docs Menu
Docs Home
/ /

listIndexes (comando de base de datos)

listIndexes

Devuelve información sobre los índices de la colección especificada, incluidos Índices ocultos e índices en construcción. La información devuelta incluye las claves y opciones utilizadas para crearlo. Opcionalmente, puede configurar el tamaño del lote para el primer lote de resultados.

Tip

En mongosh, este comando también se puede ejecutar a través del método db.collection.getIndexes() auxiliar.

Los métodos asistente son convenientes para usuarios de mongosh, pero es posible que no proporcionen el mismo nivel de información que los comandos de base de datos. En los casos en que no se necesite la conveniencia o se requieran campos de retorno adicionales, utiliza el comando de base de datos.

Este comando está disponible en implementaciones alojadas en los siguientes entornos:

  • MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube

Nota

Este comando es compatible con todos los clústeres de MongoDB Atlas. Para obtener información sobre el soporte de Atlas para todos los comandos, consulte Comandos no compatibles.

  • MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB

  • MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.

El comando tiene la siguiente sintaxis:

db.runCommand (
{
listIndexes: "<collection-name>",
cursor: { batchSize: <int> },
comment: <any>
}
)

El comando toma los siguientes campos:

Campo
Tipo
Descripción

listIndexes

string

El nombre de la colección.

cursor.batchSize

entero

Opcional. Especifica el tamaño del lote del cursor.

comment

any

Opcional. Un comentario proporcionado por el usuario para adjuntar a este comando. Una vez configurado, este comentario aparece junto a los registros de este comando en las siguientes ubicaciones:

Un comentario puede ser de cualquier tipo BSON válido (string, objeto, arreglo, etc.).

Cualquier comentario establecido en un comando listIndexes es heredado por cualquier comando getMore posterior que se ejecute en el cursor listIndexes.

Si se aplica el control de acceso, la función integrada proporciona read listIndexes los privilegios necesarios para ejecutar para las colecciones en una base de datos.

listIndexes No devuelve información sobre los índices de búsqueda de MongoDB. En su lugar,$listSearchIndexes utiliza.

Si el cliente que emitió listIndexes se desconecta antes de que la operación se complete, MongoDB marca listIndexes para su terminación usando killOp.

Para que se ejecuten en un nodo del set de réplicas, las operaciones listIndexes requieren que el nodo esté en estado PRIMARY o SECONDARY. Si el nodo se encuentra en otro estado, como STARTUP2, la operación falla.

A partir de MongoDB 6.3, 6.0.5 y 5.0.16, el campo wildcardProjection almacena la proyección del índice en su forma presentada. Las versiones anteriores del servidor podrían haber almacenado la proyección en una forma normalizada.

El servidor utiliza el índice de la misma manera, pero es posible que notes una diferencia en la salida de los comandos listIndexes db.collection.getIndexes() y.

listIndexes.cursor

Un conjunto de resultados devuelto en el tamaño de lote especificado por el cursor. Cada documento del lote contiene los siguientes campos:

Campo
Tipo
Descripción

ID.

entero

Un entero de 64bits. Si es cero, no hay más lotes de información. Si no es cero, es un ID de cursor, utilizable en un comando getMore para obtener el siguiente lote de información de índice.

ns

string

El nombre de la base de datos y de la colección en el siguiente formato: <database-name>.<collection-name>

primer lote

Documento

La información del índice incluye las claves y las opciones utilizadas para crear el índice. La opción de índice oculto solo está presente si el valor es verdadero.

Utilice para recuperar resultados adicionales según sea getMore necesario.

listIndexes.ok

El valor de retorno del comando. Un valor de 1 indica el éxito.

Este ejemplo enumera los índices de la colección contacts sin especificar el tamaño del lote del cursor.

1db.runCommand (
2 {
3 listIndexes: "contacts"
4 }
5)
1{
2 cursor: {
3 id: Long("0"),
4 ns: 'test.contacts',
5 firstBatch: [
6 { v: 2, key: { _id: 1 }, name: '_id_', ns: 'test.contacts' },
7 { v: 2, key: { a: 1 }, name: 'a_1', ns: 'test.contacts' }
8 ]
9 },
10 ok: 1
11}

Este ejemplo enumera los índices de la colección contacts y especifica un tamaño de lote de cursor de 1.

1db.runCommand (
2 {
3 listIndexes: "contacts", cursor: { batchSize: 1 }
4 }
5)
1{
2 cursor: {
3 id: Long("4809221676960028307"),
4 ns: 'test.contacts',
5 firstBatch: [ { v: 2, key: { _id: 1 }, name: '_id_', ns: 'test.contacts' } ]
6 },
7 ok: 1
8}

Este ejemplo utiliza getMore para recuperar lotes de resultados adicionales de la colección contacts.

1db.runCommand(
2 {
3 getMore: Long("4809221676960028307"), collection: "contacts"
4 }
5)
1{
2 cursor: {
3 nextBatch: [ { v: 2, key: { a: 1 }, name: 'a_1', ns: 'test.contacts' } ],
4 id: Long("0"),
5 ns: 'test.contacts'
6 },
7 ok: 1
8}

Volver

listDatabases

En esta página