Tipos o propiedades de índice incompatibles
Los índices comodín no admiten los siguientes tipos de índices o propiedades:
Nota
Los índices comodín son distintos e incompatibles con los índices de texto comodín. Los índices comodín no pueden admitir consultas que utilicen el $text operador.
Patrones de query y agregación no admitidos
- El campo no existe
Los índices comodín son dispersos y no indexan campos vacíos. Por lo tanto, los índices comodín no pueden admitir la búsqueda de documentos en los que un campo no existe.
Por ejemplo, considera una colección
inventorycon un índice comodín enproduct_attributes. El índice comodín no puede admitir las siguientes consultas:db.inventory.find( {"product_attributes" : { $exists : false } } ) db.inventory.aggregate([ { $match : { "product_attributes" : { $exists : false } } } ]) - El campo es igual a un documento o a un arreglo
Los índices comodín generan entradas para el contenido de un documento o arreglo, y no para el documento/arreglo en sí. Por lo tanto, los índices comodín no pueden admitir coincidencias exactas de igualdad de documento/arreglo. Los índices comodín pueden admitir consultas en las que el campo sea igual a un documento vacío
{}.Por ejemplo, considera una colección
inventorycon un índice comodín enproduct_attributes. El índice comodín no puede admitir las siguientes consultas:db.inventory.find({ "product_attributes" : { "price" : 29.99 } } ) db.inventory.find({ "product_attributes.tags" : [ "waterproof", "fireproof" ] } ) db.inventory.aggregate([{ $match : { "product_attributes" : { "price" : 29.99 } } }]) db.inventory.aggregate([{ $match : { "product_attributes.tags" : ["waterproof", "fireproof" ] } } }]) - El campo no es igual a un documento o arreglo.
Los índices comodín generan entradas para el contenido de un documento o arreglo, y no para el documento/arreglo en sí. Por lo tanto, los índices comodín no pueden admitir coincidencias exactas de desigualdad en documentos/arreglos.
Por ejemplo, considera una colección
inventorycon un índice comodín enproduct_attributes. El índice comodín no puede admitir las siguientes consultas:db.inventory.find( { $ne : [ "product_attributes", { "price" : 29.99 } ] } ) db.inventory.find( { $ne : [ "product_attributes.tags", [ "waterproof", "fireproof" ] ] } ) db.inventory.aggregate([{ $match : { $ne : [ "product_attributes", { "price" : 29.99 } ] } }]) db.inventory.aggregate([{ $match : { $ne : [ "product_attributes.tags", [ "waterproof", "fireproof" ] ] } }]) - El campo arreglo es igual o no es igual a nulo
Si un campo determinado es un arreglo en cualquier documento de la colección, los índices comodín no pueden admitir consultas para documentos donde ese campo sea igual o no igual a null.
Por ejemplo, considera una colección
inventorycon un índice comodín enproduct_attributes. El índice comodín no puede soportar las siguientes queries siproduct_attributes.tagses un arreglo en cualquier documento de la colección:db.inventory.find( { "product_attributes.tags": { $ne: null } } ) db.inventory.find( { "product_attributes.tags": null } ) db.inventory.aggregate([{ $match : { "product_attributes.tags": { $ne: null } } }]) db.inventory.aggregate([{ $match : { "product_attributes.tags": null } }]) - El campo es igual a nulo
Los índices comodín no pueden soportar consultas para documentos donde un campo es igual a nulo. La query
{ $eq: null }coincide con todos los documentos en los que el campo es nulo o está ausente. Los comodines son escasos, lo que significa que no indexan los documentos donde falta el campo indexado y, por tanto, no pueden soportar una coincidencia nula.Por ejemplo, considera una colección
inventorycon un índice comodín enproduct_attributes. El índice comodín no puede soportar las siguientes consultas:db.inventory.find( { "product_attributes.price": { $eq: null } } ) db.inventory.aggregate([{ $match : { "product_attributes.price": { $eq: null } } }])
particionado
No puedes particionar una colección usando un índice comodín. Crea un índice no comodín en el campo o campos que deseas dividir en particiones (shard). Para obtener más información sobre la selección de clave de partición, consulta Claves de partición.