Definición
listIndexesDevuelve 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étododb.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.
Compatibilidad
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.
Sintaxis
El comando tiene la siguiente sintaxis:
db.runCommand ( { listIndexes: "<collection-name>", cursor: { batchSize: <int> }, comment: <any> } )
Campos de comandos
El comando toma los siguientes campos:
Campo | Tipo | Descripción |
|---|---|---|
| string | El nombre de la colección. |
| entero | Opcional. Especifica el tamaño del lote del cursor. |
| 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 |
Acceso requerido
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.
Comportamiento
Índices de búsqueda de Atlas
listIndexes No devuelve información sobre los índices de Atlas Search. En su lugar,$listSearchIndexes utiliza.
Desconexión del cliente
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.
Restricción del estado del set de réplicas
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.
Índices comodín
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.
Salida
listIndexes.cursorUn conjunto de resultados devuelto en el tamaño de lote especificado por el cursor. Cada documento del lote contiene los siguientes campos:
CampoTipoDescripciónID.
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
getMorepara 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
getMorenecesario.
Ejemplos
Lista de índices de bases de datos
Este ejemplo enumera los índices de la colección contacts sin especificar el tamaño del lote del cursor.
1 db.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 }
Especificar el tamaño del lote de resultados
Este ejemplo enumera los índices de la colección contacts y especifica un tamaño de lote de cursor de 1.
1 db.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 }
Recuperar resultados adicionales
Este ejemplo utiliza getMore para recuperar lotes de resultados adicionales de la colección contacts.
1 db.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 }