sql >> データベース >  >> NoSQL >> MongoDB

MongoDB $ mul

    MongoDBには$mulがあります 値に特定の量を掛けることができるフィールド更新演算子。

    フィールドがまだ存在しない場合は、フィールドが作成され、その値はゼロ(0)に設定されます。 )乗数と同じ数値タイプを使用します。

    次のドキュメントを含むコレクションがあるとします。

    { "_id" : 1, "bar" : 10 } 

    $mulを使用できます update()と組み合わせた演算子 barをインクリメントするメソッド フィールド。

    このように:

    db.foo.update(
      { _id: 1 },
      { $mul: { bar: 2 } }
    )

    出力:

    WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

    これは、1つのドキュメントが一致して変更されたことを示しています。

    コレクションをもう一度確認しましょう:

    db.foo.find()

    結果:

    { "_id" : 1, "bar" : 20 } 

    金額が2倍の20になっていることがわかります。

    存在しないフィールドを乗算する

    $mulを使用する場合 ドキュメントに存在しないフィールドでは、フィールドが追加され、ゼロに設定されます(0 )乗数と同じ数値タイプを使用します。

    例:

    db.foo.update(
      { _id: 1 },
      { $mul: { bar: 3, extra: 2 } }
    )

    出力:

    WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

    2つのフィールドを更新したことに注意してください。 bar フィールドとextra フィールド(元々は存在しませんでした)。

    ドキュメントをもう一度確認しましょう:

    db.foo.find()

    結果:

    { "_id" : 1, "bar" : 60, "extra" : 0 } 

    bar フィールドに3が掛けられました 、および新しいextra フィールドが追加され、0に設定されました 。

    混合タイプ

    混合数値型(32ビット整数、64ビット整数、float)の値を乗算すると、数値型が変換される場合があります。

    説明については、MongoDBのドキュメントを参照してください。


    1. 制限を使用するときにMongoDBでドキュメントの総数を取得する

    2. MongoDB sort()

    3. Heroku:RQを使用したPythonのバックグラウンドタスク

    4. Linuxでエラーmongodが停止しているのに、サブシステムがロックされ、ジャーナルファイル用の空き領域が不足しているのはなぜですか?