Tipos o propiedades de índice incompatibles
Los índices comodín no admiten los siguientes tipos de índice o propiedades:
Nota
Los índices comodín son distintos de los índices de texto comodín y son incompatibles con ellos. Los índices comodín no admiten consultas que utilicen $text operador.
Patrones de consulta y agregación no admitidos
- El campo no existe
Los índices comodín son dispersos y no indexan campos vacíos. Por lo tanto, no admiten consultas de documentos donde no existe un campo.
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 de matriz es igual o no 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.