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

$mul

Der $mul Operator in Amazon DocumentDB wird verwendet, um den Wert eines Felds mit einer bestimmten Zahl zu multiplizieren. Dies kann nützlich sein, um mehrere Dokumente automatisch und konsistent zu aktualisieren, z. B. um Flugmeilen auf der Grundlage eines Kreditkartenstatus zu aktualisieren.

Parameter

  • field: Das Feld, das multipliziert werden soll.

  • multiplier: Die Zahl, mit der der Feldwert multipliziert werden soll.

Beispiel (MongoDB Shell)

Dieses Beispiel zeigt, wie der $mul Operator verwendet wird, um den flight_miles Wert für alle Dokumente zu verdoppeln, in denen sich das credit_card Feld befindettrue.

Erstellen Sie Beispieldokumente

db.miles.insertMany([ { "_id": 1, "member_since": new Date("1987-01-01"), "credit_card": false, "flight_miles": [1205, 2560, 880] }, { "_id": 2, "member_since": new Date("1982-01-01"), "credit_card": true, "flight_miles": [2410, 5120, 1780, 5560] }, { "_id": 3, "member_since": new Date("1999-01-01"), "credit_card": true, "flight_miles": [2410, 1760] } ]);

Beispiel für eine Abfrage

db.miles.update( { "credit_card": { "$eq": true } }, { "$mul": { "flight_miles.$[]": NumberInt(2) } }, { "multi": true } );

Ausgabe

{ "_id" : 1, "member_since" : ISODate("1987-01-01T00:00:00Z"), "credit_card" : false, "flight_miles" : [ 1205, 2560, 880 ] } { "_id" : 2, "member_since" : ISODate("1982-01-01T00:00:00Z"), "credit_card" : true, "flight_miles" : [ 4820, 10240, 3560, 11120 ] } { "_id" : 3, "member_since" : ISODate("1999-01-01T00:00:00Z"), "credit_card" : true, "flight_miles" : [ 4820, 3520 ] }

Für Kunden, die eine Kreditkarte besitzen, wurden ihre Flugmeilen verdoppelt.

Der $[] Positions-Array-Operator wird verwendet, um die $mul Operation auf jedes Element im flight_miles Array anzuwenden.

Codebeispiele

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

Node.js
const { MongoClient } = require('mongodb'); async function updateFlightMiles() { 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'); await collection.updateMany( { credit_card: true }, { $mul: { 'flight_miles.$[]': 2 } } ); const documents = await collection.find().toArray(); console.log(documents); await client.close(); } updateFlightMiles();
Python
from pymongo import MongoClient def update_flight_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 collection.update_many( {'credit_card': True}, {'$mul': {'flight_miles.$[]': 2}} ) documents = list(collection.find()) print(documents) client.close() update_flight_miles()