翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
$let
Amazon DocumentDB の $let演算子は、変数を値にバインドし、それらの変数を式で使用するために使用されます。これにより、集約パイプラインの同じステージ内の後続の式で使用できるローカル変数を定義できます。
パラメータ
例 (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()