Docs Menu

$mod(集計)

$mod

Divides one number by another and returns the remainder.

The $mod expression has the following syntax:

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

The first argument is the dividend, and the second argument is the divisor. That is, the first argument is divided by the second argument.

引数は、数値に変換される限り、どのような有効なでもかまいません。 式の詳細については、「式 」を参照してください。

Starting in version 7.2, the output data type of the $mod operator is the larger of the two input data types.

注意

Prior to version 7.2, the value and field type of inputs determine the $mod output type if:

  • The divisor is type double but has an integer value.

  • The dividend is type int or long.

In this case, MongoDB converts the divisor to the dividend data type before it performs the $mod operation. The output data type is the dividend data type.

配当がマイナスの場合、余りもマイナスになります。 この動作の詳細については、 公式のJavaScriptドキュメント を参照してください

例については、「 負の配当」を参照してください。

以下のドキュメントを持つconferencePlanningコレクションを考えてみましょう。

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

The following aggregation uses the $mod expression to return the remainder of the hours field divided by the tasks field:

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

この操作は次の結果を返します。

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

Consider a modExample collection that contains the following document:

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

This aggregation uses the $mod expression to return the remainder of dividend divided by the divisor field:

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

この操作は次の結果を返します。

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