文档菜单
文档首页
/
MongoDB 手册
/ / /

$mod (聚合)

在本页面上

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

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

$mod 表达式具有以下语法

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

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

参数可以是任何有效的表达式,只要它们解析为数字。有关表达式的更多信息,请参阅表达式运算符。

从版本 7.2 开始,$mod 运算符的输出数据类型是两个输入数据类型中的较大者。

注意

在版本 7.2 之前,如果除数是类型 double 但具有整数值,则输入值和字段类型确定 $mod 输出类型。

  • 被除数是类型 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 表达式来返回 股息 除以 除数 字段后的余数

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

该操作返回以下结果

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

返回

$minute