

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Índices compuestos
<a name="indexes-compound"></a>

Los índices compuestos almacenan información de dos o más campos de una colección de documentos, lo que permite realizar consultas en el primer campo o en cualquier campo de prefijo. Estos índices optimizan el rendimiento de las consultas que filtran varios campos simultáneamente o combinan el filtrado con las operaciones de clasificación. También son eficaces para las consultas de una sola condición en los campos indexados situados más a la izquierda. La base de datos aprovecha estas entradas del índice para localizar de forma eficiente los documentos coincidentes sin necesidad de digitalizar toda la colección.

Los índices de campos compuestos son beneficiosos cuando:
+ Debe filtrar varios campos simultáneamente.
+ Debe combinar el filtrado con las operaciones de clasificación.

## Propiedades de índice compatibles
<a name="indexes-compound-properties"></a>


| Opción | 3.6 | 4.0 | 5.0 | 8.0 | Elastic Cluster | 
| --- | --- | --- | --- | --- | --- | 
| [name](index-property-name.md) | Sí | Sí | Sí | Sí | Sí | 
| [único](index-property-unique.md) | Sí | Sí | Sí | Sí | Sí | 
| [escaso \*](index-property-sparse.md) | Sí | Sí | Sí | Sí | Sí | 
| [parcial \* FilterExpression](index-property-partialfilterexpression.md) | No | No | Sí | Sí | No | 

\* Las `partialFilterExpression` opciones `sparse` y no se pueden usar juntas en la misma definición de índice. Si intenta crear un índice con estas opciones, se producirá el siguiente error:

```
Error in specification: cannot mix partialFilterExpression and sparse options
```

## Crear un índice compuesto
<a name="indexes-compound-creating"></a>

Utilice el `createIndex()` método para crear un índice compuesto. La sintaxis del método es: `db.collection.createIndex(<keys>, <options>)`

El `keys` parámetro es un documento JSON que especifica los campos y el orden de clasificación del índice:

```
{
  "<field 1>": <1 (ascending)|-1 (descending)>,
  "<field 2>": <1 (ascending)|-1 (descending)>,
  ...
}
```

Tenga en cuenta que solo un campo puede ser una matriz en un índice compuesto. Si intenta crear un índice compuesto en dos o más campos de matriz, se producirá el siguiente error:

```
multiple fields of compound index cannot be arrays
```

El `options` parámetro es un documento JSON que especifica las opciones del índice:

```
{
  "name": "<name>",
  "unique": <true | false>,
  "sparse": <true | false>,
  "partialFilterExpression": <filter expression>
}
```

Consulte [Propiedades del índice](index-properties.md) para ver ejemplos de cómo crear índices compuestos.