$slice - Amazon DocumentDB

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.

$slice

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)

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

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()