$mul - Amazon DocumentDB

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

$mul

Amazon DocumentDB の $mul演算子は、フィールドの値を指定された数で乗算するために使用されます。これは、クレジットカードのステータスに基づいてフライトマイルを更新するなど、複数のドキュメントをアトミックかつ一貫して更新する場合に便利です。

パラメータ

  • field: 乗算するフィールド。

  • multiplier: フィールド値に乗算する数値。

例 (MongoDB シェル)

この例では、 $mul演算子を使用して、 credit_cardフィールドが であるすべてのドキュメントのflight_miles値を 2 倍にする方法を示しますtrue

サンプルドキュメントを作成する

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

クエリの例

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

出力

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

クレジットカードをお持ちのお客様には、フライトマイルが 2 倍になりました。

$[] 位置配列演算子は、flight_miles配列内の各要素に$mulオペレーションを適用するために使用されます。

コードの例

$mul コマンドを使用するコード例を表示するには、使用する言語のタブを選択します。

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