$mod (聚合)
定义
语法
$mod
表达式具有以下语法
{ $mod: [ <expression1>, <expression2> ] }
第一个参数是除数,第二个参数是除数。也就是说,第一个参数被除以第二个参数。
行为
参数可以是任何有效的表达式,只要它们解析为数字。有关表达式的更多信息,请参阅表达式运算符。
从版本 7.2 开始,$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 } ]