Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

$mod(聚合)

在此页面上

  • 定义
  • 语法
  • 行为
  • 例子
$mod

将一个数字除以另一个数字并返回余数

$mod 表达式的语法如下:

{ $mod: [ <expression1>, <expression2> ] }

第一个参数为被除数,而第二个参数为除数。也就是说,第一个参数除以第二个参数。

这些参数可为任意有效的 表达式,只要它们能解析为数字即可。有关表达式的更多信息,请参阅表达式操作符

从版本 7.2 开始,$mod 操作符的输出数据类型是两种输入数据类型中较大的一个。

注意

在版本 7.2 之前,如果出现以下情况,输入的值和字段类型将确定 $mod 输出类型:

  • 除数类型为 double,但具有整数值。

  • 股息类型为 intlong

在这种情况下, MongoDB会在执行 $mod 操作之前将除数转换为被除数数据类型。输出数据类型是被除数数据类型。

当被除数为负数时,余数也为负数。 有关此行为的更多详细信息,请参阅 官方 JavaScript 文档

有关示例,请参阅负被除数

请考虑包含以下文档的 conferencePlanning 集合:

db.conferencePlanning.insertMany( [
{ "_id" : 1, "city" : "New York", "hours" : 80, "tasks" : 7 },
{ "_id" : 2, "city" : "Singapore", "hours" : 40, "tasks" : 4 }
] )

以下聚合使用 $mod 表达式返回 hours 字段除以 tasks 字段的余数:

db.conferencePlanning.aggregate( [
{ $project: { remainder: { $mod: [ "$hours", "$tasks" ] } } }
] )

操作返回以下结果:

[
{ '_id' : 1, 'remainder' : 3 },
{ '_id' : 2, 'remainder' : 0 }
]

考虑包含以下文档的 modExample 集合:

db.modExample.insertOne( [
{ "_id" : 1, "dividend": -13, "divisor": 9 }
] )

此聚合使用 $mod 表达式返回 dividend 的其余部分除以 divisor 字段:

db.modExample.aggregate( [
{ $project: { remainder: { $mod: [ "$dividend", "$divisor" ] } } }
] )

操作返回以下结果:

[ { '_id' : 1, 'remainder' : -4 } ]

后退

$minute