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, considere una colección
inventorycon un índice comodínproduct_attributesen. El índice comodín no admite 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 una matriz
Los índices comodín generan entradas para el contenido de un documento o matriz, y no para el documento o la matriz en sí. Por lo tanto, no admiten coincidencias exactas entre documentos o matrices. Sin embargo, sí admiten consultas cuando el campo equivale a un documento
{}vacío.Por ejemplo, considere una colección
inventorycon un índice comodínproduct_attributesen. El índice comodín no admite 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 matriz
Los índices comodín generan entradas para el contenido de un documento o matriz, y no para el documento o la matriz en sí. Por lo tanto, no admiten coincidencias exactas de desigualdad entre documentos y matrices.
Por ejemplo, considere una colección
inventorycon un índice comodínproduct_attributesen. El índice comodín no admite 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 una matriz en cualquier documento de la colección, los índices comodín no pueden admitir consultas para documentos donde ese campo sea igual o no sea igual a nulo.
Por ejemplo, considere una colección
inventorycon un índice comodínproduct_attributesen. El índice comodín no admite las siguientes consultas siproduct_attributes.tagses una matriz 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 admiten consultas para documentos donde un campo es nulo. La consulta
{ $eq: null }coincide con todos los documentos donde el campo es nulo o falta. Los índices comodín son dispersos, lo que significa que no indexan los documentos donde falta el campo indexado y, por lo tanto, no admiten una coincidencia con valores nulos.Por ejemplo, considere una colección
inventorycon un índice comodín enproduct_attributes. El índice comodín no admite las siguientes consultas:db.inventory.find( { "product_attributes.price": { $eq: null } } ) db.inventory.aggregate([{ $match : { "product_attributes.price": { $eq: null } } }])
particionado
No se puede fragmentar una colección con un índice comodín. Cree un índice sin comodín en el campo o los campos que desee fragmentar. Para obtener más información sobre la selección de claves de fragmentación, consulte Claves de fragmentación.