📜  MongoDB – 乘法运算符 ($mul)

📅  最后修改于: 2022-05-13 01:56:58.321000             🧑  作者: Mango

MongoDB – 乘法运算符 ($mul)

MongoDB 提供了不同类型的字段更新运算符来更新文档字段的值, $mul运算符就是其中之一。此运算符用于将字段的值乘以一个数字。

  • $mul运算符只更新那些值为数字类型的字段,如 int、float 等。
  • 如果文档中不存在指定的字段,则此运算符将在文档中添加该字段并将该字段的值分配给与乘数相同的数字类型的零。
  • 此运算符是单个文档中的原子操作。
  • 在这个运算符,与混合数字类型(如 32 位整数、64 位整数、浮点数等)的值相乘可能会导致数字类型的转换。以下规则适用于与混合数字类型的值的乘法:
    32-bit Integer64-bit IntegerFloat
    32-bit Integer32-bit or 64-bit Integer64-bit IntegerFloat
    64-bit Integer64-bit Integer64-bit IntegerFloat
    FloatFloatFloatFloat

    $mul运算符还可以处理嵌入/嵌套的文档或数组。您可以根据需要在 update()、findAndModify() 等方法中使用此运算符。

    句法:

    { $mul: { : , : , ... } }

    在这里, 可以在嵌入/嵌套文档中用点表示法指定。

    在以下示例中,我们正在使用:



    乘以一个字段的值:

    在这个例子中,我们将匹配指定条件的文档中的 price 字段的值乘以 2.10,即 name = mango。

    db.Details.update({name: "mango"}, {$mul: {price: NumberDecimal("2.10")}})
    

    将嵌入/嵌套文档中字段的值相乘:

    在本例中,我们将匹配指定条件的文档中的quantity.tQuantity 字段的值乘以3,即name = mango。

    db.Details.update({name: "mango"}, {$mul: {"quantity.tQuantity": 3}})
    

    对不存在的字段使用$mul运算符:

    在此示例中,我们将 $mul运算符应用于文档中与指定条件匹配的非现有字段,即 name = apple。

    db.Details.update({name: "apple"}, {$mul: {"batchNumber":NumberInt(230)}})
    

    使用$mul运算符乘以混合数字类型:

    在这个例子中,我们将匹配指定条件的文档中的 price 字段的值(浮点型)相乘,即 name = apple。

    db.Details.update({name: "apple"}, {$mul: {price: NumberDecimal(5)}})