与混合数字类型(32位整数,64位整数,浮点数)的值相乘可能会导致数字类型转换。对于与混合数值类型的值相乘,将应用以下类型转换规则:
32位整数 | 64位整数 | 浮动 | |
---|---|---|---|
32位整数 | 32位或64位整数 | 64位整数 | 浮动 |
64位整数 | 64位整数 | 64位整数 | 浮动 |
浮动 | 浮动 | 浮动 | 浮动 |
注意
考虑products
包含以下文档的集合:
以下db.collection.update()
操作使用$mul
运算符将price
by 1.25
和qty
字段乘以2
:
该操作产生以下文档,其中的新值
price
反映原始值10.99
乘以,1.25
而的新值qty
反映原始值25
乘以2
:
$mul
操作员到一个不存在的字段¶考虑products
包含以下文档的集合:
以下db.collection.update()
操作更新文档,将$mul
运算符应用于文档price
中不存在的字段:
该操作将导致以下文档的price
字段设置为数值类型NumberLong的值0 ,该类型与乘数相同:
考虑products
包含以下文档的集合:
以下db.collection.update()
操作使用
$mul
操作者在乘以值price
字段
NumberLong(10)由NumberInt(5) :
该操作产生以下文档:
该price
字段中的值是NumberLong类型。有关详细信息,请参见
乘法类型转换规则。