$mul - Amazon DocumentDB

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

$mul

$mulOperator di Amazon DocumentDB digunakan untuk mengalikan nilai bidang dengan nomor tertentu. Ini dapat berguna untuk memperbarui beberapa dokumen secara atomik dan konsisten, seperti memperbarui mil penerbangan berdasarkan status kartu kredit.

Parameter

  • field: Bidang yang akan dikalikan.

  • multiplier: Angka untuk mengalikan nilai bidang dengan.

Contoh (MongoDB Shell)

Contoh ini menunjukkan bagaimana menggunakan $mul operator untuk menggandakan flight_miles nilai untuk semua dokumen di mana credit_card bidang tersebuttrue.

Buat dokumen sampel

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

Contoh kueri

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

Keluaran

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

Untuk pelanggan yang memiliki kartu kredit, mil penerbangan mereka telah berlipat ganda.

Operator array $[] posisional digunakan untuk menerapkan $mul operasi ke setiap elemen dalam flight_miles array.

Contoh kode

Untuk melihat contoh kode untuk menggunakan $mul perintah, pilih tab untuk bahasa yang ingin Anda gunakan:

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