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

$let

Der $let Operator in Amazon DocumentDB wird verwendet, um Variablen an Werte zu binden und diese Variablen im Ausdruck zu verwenden. Es ermöglicht Ihnen, lokale Variablen zu definieren, die in nachfolgenden Ausdrücken innerhalb derselben Phase der Aggregationspipeline verwendet werden können.

Parameter

  • vars: Ein Objekt, das die Variablen definiert, die im Ausdruck verwendet werden sollen.

  • in: Der Ausdruck, in dem die im vars-Parameter definierten Variablen verwendet werden.

Beispiel (MongoDB Shell)

Dieses Beispiel demonstriert die Verwendung des $let Operators zur Berechnung der Fläche eines Rechtecks.

Erstellen Sie Beispieldokumente

db.shapes.insertMany([ { name: "Rectangle 1", length: 5, width: 3 }, { name: "Rectangle 2", length: 7, width: 4 }, { name: "Rectangle 3", length: 6, width: 2 } ]);

Beispiel für eine Abfrage

db.shapes.aggregate([ { $project: { name: 1, area: { $let: { vars: { length: "$length", width: "$width" }, in: { $multiply: ["$$length", "$$width"] } } } } } ])

Ausgabe

[ { "_id": ObjectId("6161e5b1a3eba3c7f2960d03"), "name": "Rectangle 1", "area": 15 }, { "_id": ObjectId("6161e5b1a3eba3c7f2960d04"), "name": "Rectangle 2", "area": 28 }, { "_id": ObjectId("6161e5b1a3eba3c7f2960d05"), "name": "Rectangle 3", "area": 12 } ]

Codebeispiele

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

Node.js
const { MongoClient } = require('mongodb'); async function calculateRectangleAreas() { 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('shapes'); const result = await shapes.aggregate([ { $project: { name: 1, area: { $let: { vars: { length: '$length', width: '$width' }, in: { $multiply: ['$$length', '$$width'] } } } } } ]).toArray(); console.log(result); client.close(); } calculateRectangleAreas();
Python
from pymongo import MongoClient def calculate_rectangle_areas(): 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.shapes result = list(shapes.aggregate([ { '$project': { 'name': 1, 'area': { '$let': { 'vars': { 'length': '$length', 'width': '$width' }, 'in': { '$multiply': ['$$length', '$$width'] } } } } } ])) print(result) client.close() calculate_rectangle_areas()