Docs Menu
Docs Home
/ /
Comodín

Restricciones del índice comodín

Los índices comodín no admiten los siguientes tipos de índice o propiedades:

  • Compuesto

  • TTL

  • Text

  • 2d (Geoespacial)

  • 2dsphere (Geoespacial)

  • encriptada

  • Unique

Nota

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 inventory con un índice comodín product_attributes en. 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 inventory con un índice comodín product_attributes en. 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 inventory con un índice comodín product_attributes en. 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 inventory con un índice comodín product_attributes en. El índice comodín no admite las siguientes consultas si product_attributes.tags es 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 inventory con un índice comodín en product_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 } }
}])

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.

Volver

Comodín

En esta página