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

$multiply

Der $multiply Operator in Amazon DocumentDB wird verwendet, um die Werte von zwei oder mehr Feldern oder Ausdrücken zu multiplizieren. Dieser Operator ist besonders nützlich, um arithmetische Operationen an numerischen Feldern in Dokumenten durchzuführen. Er kann in verschiedenen Phasen der Aggregationspipeline eingesetzt werden, z. B. bei $project und$addFields, um neue Felder zu erstellen oder bestehende zu ändern.

Parameter

  • expression1: Der erste numerische Ausdruck, der multipliziert werden soll.

  • expression2: Der zweite numerische Ausdruck, der multipliziert werden soll.

  • [expression3, ...]: (optional) Zusätzliche numerische Ausdrücke, die multipliziert werden sollen.

Beispiel (MongoDB Shell)

Das folgende Beispiel zeigt die Verwendung $multiply zur Berechnung bonus_miles durch Multiplikation base_miles und bonus_rate für Kunden, die für die Reise eine Kreditkarte verwendet haben.

Beispieldokumente

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 } ]);

Beispiel für eine Abfrage

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"] } } } ]);

Ausgabe

[ { _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 } ]

Codebeispiele

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

Node.js
const { MongoClient } = require('mongodb'); async function multiplyBonusMiles() { 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('miles'); const result = await collection.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"] } } } ]).toArray(); console.log(result); await client.close(); } multiplyBonusMiles();
Python
from pymongo import MongoClient def multiply_bonus_miles(): 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['miles'] result = list(collection.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'] } } } ])) print(result) client.close() multiply_bonus_miles()