$let - Amazon DocumentDB

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

$let

Amazon DocumentDB の $let演算子は、変数を値にバインドし、それらの変数を式で使用するために使用されます。これにより、集約パイプラインの同じステージ内の後続の式で使用できるローカル変数を定義できます。

パラメータ

  • vars: 式で使用する変数を定義するオブジェクト。

  • in: vars パラメータで定義された変数を使用する式。

例 (MongoDB シェル)

この例では、$let演算子を使用して長方形の面積を計算する方法を示します。

サンプルドキュメントを作成する

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

クエリの例

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

出力

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

コードの例

$let コマンドを使用するコード例を表示するには、使用する言語のタブを選択します。

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