$let - Amazon DocumentDB

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

$let

L'$letoperatore in Amazon DocumentDB viene utilizzato per associare variabili a valori e utilizzare tali variabili nell'espressione. Consente di definire variabili locali che possono essere utilizzate nelle espressioni successive all'interno della stessa fase della pipeline di aggregazione.

Parametri

  • vars: un oggetto che definisce le variabili da utilizzare nell'espressione.

  • in: L'espressione in cui vengono utilizzate le variabili definite nel parametro vars.

Esempio (MongoDB Shell)

Questo esempio dimostra l'utilizzo dell'$letoperatore per calcolare l'area di un rettangolo.

Crea documenti di esempio

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

Esempio di interrogazione

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

Output

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

Esempi di codice

Per visualizzare un esempio di codice per l'utilizzo del $let comando, scegliete la scheda relativa alla lingua che desiderate utilizzare:

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