$map - 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.

$map

L'$mapopérateur d'Amazon DocumentDB vous permet d'appliquer une expression spécifiée à chaque élément d'un tableau et de renvoyer un nouveau tableau contenant les éléments transformés. Cet opérateur est particulièrement utile pour manipuler et transformer des données au sein de tableaux, ce qui peut contribuer à simplifier le code de votre application et à améliorer les performances des requêtes en reportant le traitement des tableaux au niveau de la base de données.

Paramètres

  • input: Le tableau à transformer.

  • as: (facultatif) Le nom de la variable à utiliser dans l'expression in pour représenter l'élément en cours de traitement.

  • in: expression à appliquer à chaque élément du tableau d'entrée.

Exemple (MongoDB Shell)

L'exemple suivant montre comment utiliser l'opérateur $map pour transformer un tableau de nombres, en doublant chaque valeur.

Création d'exemples de documents

db.collection.insertMany([ { _id: 1, numbers: [1, 2, 3, 4, 5] }, { _id: 2, numbers: [10, 20, 30, 40, 50] } ])

Exemple de requête

db.collection.aggregate([ { $project: { doubledNumbers: { $map: { input: "$numbers", as: "num", in: { $multiply: ["$$num", 2] } } } } } ])

Sortie

[ { _id: 1, doubledNumbers: [2, 4, 6, 8, 10] }, { _id: 2, doubledNumbers: [20, 40, 60, 80, 100] } ]

Exemples de code

Pour afficher un exemple de code relatif à l'utilisation de la $map commande, choisissez 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('collection'); const result = await collection.aggregate([ { $project: { doubledNumbers: { $map: { input: "$numbers", as: "num", in: { $multiply: ["$$num", 2] } } } } } ]).toArray(); console.log(result); 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.collection result = list(collection.aggregate([ { '$project': { 'doubledNumbers': { '$map': { 'input': '$numbers', 'as': 'num', 'in': { '$multiply': ['$$num', 2] } } } } } ])) print(result) client.close() example()