Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Crear un índice comodín en un solo campo

Los índices comodín en un solo campo admiten consultas en cualquier subcampo del campo indexado. Utilice índices comodín para admitir consultas sobre nombres de campos que no conoce con anticipación o que varían entre documentos.

Para crear un índice comodín en un único campo, usa el método db.collection.createIndex() e incluye el especificador comodín ($**) en la clave del índice:

db.collection.createIndex( { "<field>.$**": <sortOrder> } )

Usa índices comodín solo cuando los campos a los que quieras aplicar un índice sean desconocidos o puedan cambiar. Los índices comodín no funcionan tan bien como los índices dirigidos en campos específicos. Si tu colección tiene nombres arbitrarios de campos que impiden los índices dirigidos, considera remodelar tu esquema para que tenga nombres de campo coherentes. Para aprender más sobre los índices objetivo, consulta Crear índices para dar soporte a tus query.

Creá una colección products que contenga los siguientes documentos:

db.products.insertMany( [
{
"product_name" : "Spy Coat",
"attributes" : {
"material" : [ "Tweed", "Wool", "Leather" ],
"size" : {
"length" : 72,
"units" : "inches"
}
}
},
{
"product_name" : "Spy Pen",
"attributes" : {
"colors" : [ "Blue", "Black" ],
"secret_feature" : {
"name" : "laser",
"power" : "1000",
"units" : "watts",
}
}
}
] )

La siguiente operación crea un índice comodín en el campo attributes:

db.products.createIndex( { "attributes.$**" : 1 } )

El índice comodín admite consultas de campo único en attributes o sus campos incrustados. Por ejemplo, el índice admite las siguientes queries:

  • query:

    db.products.find( { "attributes.size.length" : { $gt : 60 } } )

    Salida:

    [
    {
    _id: ObjectId("63472196b1fac2ee2e957ef6"),
    product_name: 'Spy Coat',
    attributes: {
    material: [ 'Tweed', 'Wool', 'Leather' ],
    size: { length: 72, units: 'inches' }
    }
    }
    ]
  • query:

    db.products.find( { "attributes.material" : "Leather" } )

    Salida:

    [
    {
    _id: ObjectId("63472196b1fac2ee2e957ef6"),
    product_name: 'Spy Coat',
    attributes: {
    material: [ 'Tweed', 'Wool', 'Leather' ],
    size: { length: 72, units: 'inches' }
    }
    }
    ]
  • query:

    db.products.find(
    { "attributes.secret_feature.name" : "laser" },
    { "_id": 0, "product_name": 1, "attributes.colors": 1 }
    )

    Salida:

    [
    {
    product_name: 'Spy Pen',
    attributes: { colors: [ 'Blue', 'Black' ] }
    }
    ]

Los índices comodín tienen un comportamiento específico cuando el campo indexado contiene un objeto incrustado (por ejemplo, attributes.secret_feature). Para obtener más información, consulta Índices comodín en objetos y arreglos embebidos.

Para obtener más información sobre los comportamientos y casos de uso de los índices comodín, consulta: