$range (数値シーケンスの生成)

最終更新:2026-10-09

$range (数値シーケンスの生成)

$range は開始値から終了値未満までの整数シーケンスを、オプションのステップで生成します。$dateAdd との組み合わせによる日付シーケンス、ページングのページ番号生成、テストデータの大量生成などに使われます。ステップの既定値は 1 で、降順シーケンスには負の値を指定します。ステップ 0 はエラーになります。結果は整数の配列で、$map に渡してフィールドを一括生成するのがよくある使い方です。

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

📝 構文

{ $range: [ <start>, <end>, <step> ] }

⚙️ パラメータ

開始数列の開始整数(含む)。
終了数列の終了整数(含まない)。
ステップ隣接する値の任意の差分。既定は 1 で、0 であってはなりません。

戻り値:start から end の手前までの整数の配列

▶ 例

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

// $range: 0 から 4 の数値を生成
db.test.aggregate([
  { $project: {
      nums: { $range: [0, 5] }
  } }
])

出力:

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

📌 注意事項

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

📚 関連チュートリアル

❓ よくある質問

Q終了値は含まれますか?
Aいいえ — 左閉右開の範囲で、[0, 5] は 4 で終わります。
Q降順シーケンスを作れますか?
Aはい — 負のステップを使います。{ $range: [5, 0, -1] } は 5 から 1 を生成します。
Qステップは 0 にできますか?
Aいいえ — ステップ 0 はエラーになります。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%