$map - Amazon DocumentDB

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

$map

Der $map Operator in Amazon DocumentDB ermöglicht es Ihnen, einen bestimmten Ausdruck auf jedes Element in einem Array anzuwenden und ein neues Array mit den transformierten Elementen zurückzugeben. Dieser Operator ist besonders nützlich für die Manipulation und Transformation von Daten innerhalb von Arrays. Er kann dazu beitragen, Ihren Anwendungscode zu vereinfachen und die Abfrageleistung zu verbessern, indem die Array-Verarbeitung auf Datenbankebene verlagert wird.

Parameter

  • input: Das Array, das transformiert werden soll.

  • as: (optional) Der Name der Variablen, die innerhalb des in-Ausdrucks verwendet werden soll, um das aktuelle Element darzustellen, das gerade verarbeitet wird.

  • in: Der Ausdruck, der auf jedes Element im Eingabearray angewendet werden soll.

Beispiel (MongoDB Shell)

Das folgende Beispiel zeigt, wie der $map-Operator verwendet wird, um ein Zahlenarray zu transformieren, wobei jeder Wert verdoppelt wird.

Erstellen Sie Beispieldokumente

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

Beispiel für eine Abfrage

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

Ausgabe

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

Codebeispiele

Um ein Codebeispiel für die Verwendung des $map Befehls anzuzeigen, wählen Sie die Registerkarte für die Sprache, die Sie verwenden möchten:

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