

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-projection"></a>

L'opérateur `$slice` de projection limite le nombre d'éléments du tableau renvoyés dans le résultat d'une requête. Il vous permet de récupérer un nombre spécifique d'éléments depuis le début ou la fin d'un champ de tableau sans charger le tableau entier.

**Paramètres**
+ `field`: le champ du tableau à projeter.
+ `count`: Nombre d'éléments à renvoyer. Les valeurs positives renvoient les éléments depuis le début, les valeurs négatives depuis la fin.

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

L'exemple suivant montre comment utiliser l'opérateur de `$slice` projection pour renvoyer uniquement les deux premiers éléments d'un champ de tableau.

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

```
db.inventory.insertMany([
  { _id: 1, item: "notebook", tags: ["office", "school", "supplies", "writing"] },
  { _id: 2, item: "pen", tags: ["office", "writing"] },
  { _id: 3, item: "folder", tags: ["office", "supplies", "storage", "organization"] }
]);
```

**Exemple de requête**

```
db.inventory.find(
  {},
  { item: 1, tags: { $slice: 2 } }
)
```

**Sortie**

```
{ "_id" : 1, "item" : "notebook", "tags" : [ "office", "school" ] }
{ "_id" : 2, "item" : "pen", "tags" : [ "office", "writing" ] }
{ "_id" : 3, "item" : "folder", "tags" : [ "office", "supplies" ] }
```

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

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

------
#### [ 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 collection = db.collection('inventory');

  const result = await collection.find(
    {},
    { projection: { item: 1, tags: { $slice: 2 } } }
  ).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']
    collection = db['inventory']

    result = list(collection.find(
        {},
        {'item': 1, 'tags': {'$slice': 2}}
    ))

    print(result)
    client.close()

example()
```

------