$mod (剰余)

最終更新:2026-10-09

$mod (剰余)

$mod は 2 つの値を割った余りを返します。引数は被除数と除数の 2 つで、整数除算の余りを返します。ページング、周期性の検出、パリティ判定(注文 ID が奇数か偶数かを 2 で割って判定するなど)、タイムスタンプの剰余によるシャーディングなどに役立ちます。除数が 0 の場合はエラーにならず null を返します。結果の符号は被除数に従います。$mod は整数と Decimal で動作します。浮動小数点値には注意が必要で、必要に応じて Decimal に変換してください。

カテゴリ数学
MongoDB バージョン1.0+
例の言語mongosh(シェル)

📝 構文

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

⚙️ パラメータ

被除数数値、または数値に解決される式。
除数分母の式。除数が 0 の場合、結果は null になります。

戻り値:除算後の剰余。除数が 0 の場合は null

▶ 例

以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):

// $mod: 注文番号が奇数か判定
db.orders.aggregate([
  { $project: {
      isOdd: { $eq: [{ $mod: ['$orderNo', 2] }, 1] }
  } }
])

出力:

{ '_id': 1, 'isOdd': true }
{ '_id': 2, 'isOdd': false }

📌 注意事項

さらなる実践ケースを近日公開予定。

📚 関連チュートリアル

❓ よくある質問

Q$mod が 0 で割るとどうなりますか?
A例外なしで null を返します。デフォルトには $ifNull を使います。
Q$mod の結果の符号はどう決まりますか?
A余りは被除数に従うため、-7 mod 3 は -1 になります。
Q$mod は浮動小数点数で使えますか?
ADecimal は問題ありませんが、素の double は不正確になり得ます。剰余を取る前に Decimal に変換してください。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%