本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
$multiply
Amazon DocumentDB 中的$multiply運算子用於將兩個或多個欄位或表達式的值相乘。此運算子對於對文件中的數值欄位執行算術操作特別有用。它可以用於彙總管道的各個階段,例如 $project和 $addFields,以建立新的欄位或修改現有的欄位。
參數
-
expression1:要乘以的第一個數值表達式。 -
expression2:要乘以的第二個數值表達式。 -
[expression3, ...]:(選用) 要乘以的其他數值表達式。
範例 (MongoDB Shell)
下列範例示範使用 $multiply來計算乘bonus_miles以 base_miles,以及bonus_rate針對使用信用卡進行旅程的客戶。
文件範例
db.miles.insertMany([ { "_id": 1, "customer_name": "Arnav Desai", "member_since": ISODate("1997-03-01T00:00:00Z"), "base_miles": 2500, "bonus_rate": 1.8, "credit_card": true, "trip_cost": 250 }, { "_id": 2, "customer_name": "Jorge Souza", "member_since": ISODate("2004-01-10T00:00:00Z"), "base_miles": 1890, "bonus_rate": 1.4, "credit_card": true, "trip_cost": 189 }, { "_id": 3, "customer_name": "Saanvi Sarkar", "member_since": ISODate("1999-11-22T00:00:00Z"), "base_miles": 3250, "bonus_rate": 1.8, "credit_card": false, "trip_cost": 325 }, { "_id": 4, "customer_name": "Paulo Santos", "member_since": ISODate("2021-06-19T00:00:00Z"), "base_miles": 2980, "bonus_rate": 1.2, "credit_card": true, "trip_cost": 298 }, { "_id": 5, "customer_name": "Wang Xiulan", "member_since": ISODate("1995-12-04T00:00:00Z"), "base_miles": 1350, "bonus_rate": 1.9, "credit_card": false, "trip_cost": 135 } ]);
查詢範例
db.miles.aggregate([ { $match: { credit_card: true } }, { $project: { customer_name: 1, base_miles: 1, bonus_rate:1, credit_card: 1, total_miles: { $multiply: ["$base_miles", "$bonus_rate"] } } } ]);
輸出
[
{ _id: 1, customer_name: 'Arnav Desai', base_miles: 12500, bonus_rate: 1.8, credit_card: true, total_miles: 22500 },
{ _id: 3, customer_name: 'Saanvi Sarkar',base_miles: 15200, bonus_rate: 1.8, credit_card: true, total_miles: 27360 },
{ _id: 4, customer_name: 'Paulo Santos', base_miles: 3400, bonus_rate: 1.1, credit_card: true, total_miles: 3740 }
]
程式碼範例
若要檢視使用 $multiply命令的程式碼範例,請選擇您要使用的語言標籤: