Índices multiclave y comodín

Indexa arrays y campos que no conoces de antemano.

Indexa los valores de un array con un índice multiclave, o todos los campos de un subdocumento con un índice comodín.

Requisitos

  • Un usuario con dbAdmin o readWrite sobre la base.

Indexar un array

Un índice sobre un campo que es un array tiene una entrada por elemento; no hace falta pedirlo:

JavaScript
db.productos.createIndex({ etiquetas: 1 });

Indexar campos desconocidos

JavaScript
db.productos.createIndex({ "atributos.$**": 1 });

Comprobar

El explain de db.productos.find({ etiquetas: "eco" }) muestra que la consulta usa el índice etiquetas_1 en lugar de recorrer la colección.

Problemas frecuentes

  • Un índice comodín no puede ser único. Si intentas hacerlo único con collMod, responde el error 67.

Ver también