

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.

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

Nuevo desde la versión 5.0.

No es compatible con el clúster de Elastic.

El `$first` operador de Amazon DocumentDB devuelve el primer documento de un conjunto agrupado de documentos. Se suele utilizar en las canalizaciones de agregación para recuperar el primer documento que cumple una condición específica.

**Parámetros**
+ `expression`: La expresión que se devolverá como el primer valor de cada grupo.

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

El siguiente ejemplo demuestra el uso del `$first` operador para recuperar el primer valor de elemento encontrado para cada categoría durante la agregación.

Nota: `$first` devuelve el primer documento en función del orden actual de los documentos en proceso. Para garantizar un orden específico (por ejemplo, por fecha, precio, etc.), se debe utilizar una `$sort` etapa antes de la `$group` etapa.

**Cree documentos de muestra**

```
db.products.insertMany([
  { _id: 1, item: "abc", price: 10, category: "food" },
  { _id: 2, item: "jkl", price: 20, category: "food" },
  { _id: 3, item: "xyz", price: 5, category: "toy" },
  { _id: 4, item: "abc", price: 5, category: "toy" }
]);
```

**Ejemplo de consulta**

```
db.products.aggregate([
  { $group: { _id: "$category", firstItem: { $first: "$item" } } }
]);
```

**Salida**

```
[
  { "_id" : "food", "firstItem" : "abc" },
  { "_id" : "toy", "firstItem" : "xyz" }
]
```

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

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

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

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

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

  try {
    await client.connect();

    const db = client.db('test');
    const collection = db.collection('products');

    const result = await collection.aggregate([
      { $group: { _id: "$category", firstItem: { $first: "$item" } } }
    ]).toArray();

    console.log(result);

  } catch (error) {
    console.error('Error:', error);
  } finally {
    await client.close();
  }
}

example();
```

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

```
from pymongo import MongoClient
from pprint import pprint

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

        db = client['test']
        collection = db['products']

        result = list(collection.aggregate([
            { '$group': { '_id': '$category', 'firstItem': { '$first': '$item' } } }
        ]))

        pprint(result)

    except Exception as e:
        print(f"An error occurred: {e}")

    finally:
        if client:
            client.close()

example()
```

------