Docs Menu
Docs Home
/ /

Índices comodín

MongoDB admite la creación de índices en un campo o conjunto de campos para mejorar el rendimiento de las consultas. MongoDB admite Esquemas flexibles, lo que significa que los nombres de los campos de los documentos pueden variar dentro de una colección. Utilice índices comodín para admitir consultas en campos arbitrarios o desconocidos.

Para crear un índice comodín, utilice el especificador comodín ($**) como clave de índice:

db.collection.createIndex( { "$**": <sortOrder> } )

Puedes usar los siguientes comandos para crear un índice comodín:

Usa índices comodín solo cuando los campos a los que quieras aplicar un índice sean desconocidos o puedan cambiar. Los índices comodín no funcionan tan bien como los índices dirigidos en campos específicos. Si tu colección tiene nombres arbitrarios de campos que impiden los índices dirigidos, considera remodelar tu esquema para que tenga nombres de campo coherentes. Para aprender más sobre los índices objetivo, consulta Crear índices para dar soporte a tus query.

Considera usar un índice comodín en los siguientes escenarios:

  • Si tu aplicación realiza una query en una colección en la que los nombres de los campos varían de un documento a otro, crea un índice comodín que admita las query en todos los nombres de campos de documentos posibles.

  • Si tu aplicación consulta de forma repetida un campo de documento incrustado en el que los subcampos no son coherentes, crea un índice comodín que soporte las query en todos los subcampos.

  • Si tu aplicación consulta documentos que comparten características comunes. Un índice comodín compuesto puede cubrir eficazmente muchas query para documentos que tienen campos comunes. Para obtener más información, consulta Índices comodín compuestos.

Puedes hacer las siguientes tareas con índices comodín:

Los índices comodín se comportan de la siguiente manera:

  • Puedes crear múltiples índices comodín en una colección.

  • Un índice comodín puede cubrir los mismos campos que otros índices de la colección.

  • Los índices comodín omiten el campo _id por defecto. Para incluir el campo _id en el índice comodín, debes incluirlo explícitamente en el documento wildcardProjection especificando { "_id" : 1 }.

  • Los índices comodín son índices dispersos y solo contienen entradas para documentos que tienen el campo indexado, incluso si el campo de índice contiene un valor nulo.

  • Los índices comodín son distintos de los índices de texto comodín e incompatibles con ellos. Los índices comodín no admiten las query que utilizan el $text operador.

Los índices comodín pueden ofrecer soporte a una query cubierta solo si todas las siguientes condiciones son verdaderas:

  • El planificador de query selecciona el índice comodín para cumplir con el predicado de la query.

  • El predicado de la query especifica exactamente un campo cubierto por el índice comodín.

  • La proyección de query excluye explícitamente _id e incluye solo el campo de query.

  • El campo de query especificado nunca es un arreglo.

Observa el siguiente índice comodín de la colección employees:

db.employees.createIndex( { "$**" : 1 } )

La siguiente operación realiza una query para un único campo lastName y proyecta todos los demás campos del documento resultante:

db.employees.find(
{ "lastName" : "Doe" },
{ "_id" : 0, "lastName" : 1 }
)

Si el lastName especificado nunca es un arreglo, MongoDB puede utilizar el índice comodín $** para soportar una query cubierta.

Para aprender más sobre los índices comodín, consulta:

Volver

Límites

En esta página