

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.

# \$1elemMatch
<a name="elemMatch"></a>

El `$elemMatch` operador de Amazon DocumentDB se utiliza para consultar un campo de matriz y devolver documentos en los que al menos un elemento de la matriz coincide con los criterios especificados. Este operador resulta especialmente útil cuando tiene estructuras de datos complejas con matrices anidadas o documentos incrustados.

La versión 2.0 de Planner agregó compatibilidad con índices para. `$elemMatch`

**Parámetros**
+ `field`: El campo de matriz que se va a consultar.
+ `query`: Los criterios que deben compararse con los elementos de la matriz.

 

**Utilización `$elemMatch` dentro de una `$all` expresión**

Consulte [Uso de `$elemMatch` dentro de una expresión `$all`](functional-differences.md#functional-differences.elemMatch) las limitaciones relacionadas con el uso del `$elemMatch` operador en una `$all` expresión.

## Ejemplo (MongoDB Shell)
<a name="elemMatch-examples"></a>

El siguiente ejemplo muestra cómo utilizar el `$elemMatch` operador para buscar documentos en los que la `parts` matriz tenga al menos un elemento que coincida con los criterios especificados.

**Cree documentos de muestra**

```
db.col.insertMany([
  { _id: 1, parts: [{ part: "xyz", qty: 10 }, { part: "abc", qty: 20 }] },
  { _id: 2, parts: [{ part: "xyz", qty: 5 }, { part: "abc", qty: 10 }] },
  { _id: 3, parts: [{ part: "xyz", qty: 15 }, { part: "abc", qty: 100 }] },
  { _id: 4, parts: [{ part: "abc", qty: 150 }] }
]);
```

**Ejemplo de consulta**

```
db.col.find({
  parts: { "$elemMatch": { part: "xyz", qty: { $lt: 11 } } }
})
```

**Salida**

```
{ "_id" : 1, "parts" : [ { "part" : "xyz", "qty" : 10 }, { "part" : "abc", "qty" : 20 } ] }
{ "_id" : 2, "parts" : [ { "part" : "xyz", "qty" : 5 }, { "part" : "abc", "qty" : 10 } ] }
```

## Ejemplos de código
<a name="elemMatch-code"></a>

Para ver un ejemplo de código para usar el `$elemMatch` comando, elija la pestaña del idioma que desee usar:

------
#### [ Node.js ]

```
const { MongoClient } = require('mongodb');

async function example() {
  const client = await MongoClient.connect('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false');
  const db = client.db('test');
  const col = db.collection('col');

  const result = await col.find({
    parts: { 
      "$elemMatch": { part: "xyz", qty: { $lt: 11 } } 
    }
  }).toArray();

  console.log(JSON.stringify(result, null, 2));
  await client.close();
}

example();
```

------
#### [ Python ]

```
from pymongo import MongoClient

def example():
    client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false')
    db = client['test']
    col = db['col']

    result = list(col.find({
      'parts': { 
        '$elemMatch': {'part': 'xyz', 'qty': {'$lt': 11}} 
      }
    }))

    print(result)
    client.close()

example()
```

------