

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# \$1slice
<a name="slice-update"></a>

L'opérateur de `$slice` mise à jour modifie un tableau en limitant sa taille. Lorsqu'il est utilisé avec l'`$push`opérateur, il limite le nombre d'éléments d'un tableau, en ne conservant que le nombre spécifié d'éléments les plus récents ou les plus anciens.

**Paramètres**
+ `field`: le champ du tableau à modifier.
+ `count`: Nombre maximum d'éléments à conserver. Les valeurs positives conservent les N premiers éléments, les valeurs négatives conservent les N derniers éléments.

## Exemple (MongoDB Shell)
<a name="slice-update-examples"></a>

L'exemple suivant montre comment utiliser l'opérateur de `$slice` mise à jour with `$push` pour gérer un tableau de taille fixe des scores récents.

**Création d'exemples de documents**

```
db.students.insertOne({
  _id: 1,
  name: "Alice",
  scores: [85, 90, 78]
});
```

**Exemple de requête**

```
db.students.updateOne(
  { _id: 1 },
  {
    $push: {
      scores: {
        $each: [92, 88],
        $slice: -3
      }
    }
  }
)
```

**Sortie**

```
{
  "_id" : 1,
  "name" : "Alice",
  "scores" : [ 78, 92, 88 ]
}
```

Dans cet exemple, le `$slice: -3` modificateur ne conserve que les trois derniers éléments après avoir introduit de nouvelles valeurs dans le tableau.

## Exemples de code
<a name="slice-update-code"></a>

Pour afficher un exemple de code relatif `$slice` à l'utilisation de l'opérateur de mise à jour, sélectionnez l'onglet correspondant à la langue que vous souhaitez utiliser :

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

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

async function updateDocument() {
  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 collection = db.collection('students');

  await collection.updateOne(
    { _id: 1 },
    {
      $push: {
        scores: {
          $each: [92, 88],
          $slice: -3
        }
      }
    }
  );

  const updatedDocument = await collection.findOne({ _id: 1 });
  console.log(updatedDocument);

  await client.close();
}

updateDocument();
```

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

```
from pymongo import MongoClient

def update_document():
    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.students

    collection.update_one(
        {'_id': 1},
        {
            '$push': {
                'scores': {
                    '$each': [92, 88],
                    '$slice': -3
                }
            }
        }
    )

    updated_document = collection.find_one({'_id': 1})
    print(updated_document)

    client.close()

update_document()
```

------