$skip (スキップ)
最終更新:2026-10-09
$skip (スキップ)
$skip は、パイプラインの現在の順序で最初の N 件を捨て、残りをそのまま渡します。通常は $limit と組み合わせてオフセットページネーションに使います。スキップは無料ではありません — スキップされるドキュメントも読み取られて捨てられます。大規模データでは深いページングより、ソートキーに対する範囲クエリを推奨します。
| カテゴリ | コアステージ |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ $skip: <positive integer> }
⚙️ パラメータ
| スキップ数 | 除外するドキュメント数。非負の整数である必要があります。 |
|---|
戻り値:先頭 N ドキュメントを除外した後のドキュメントストリーム
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// $skip: 2 ページ目、1 ページ 10 件
db.articles.aggregate([
{ $sort: { date: -1 } },
{ $skip: 10 },
{ $limit: 10 }
])
出力:
// 日付降順で 11〜20 件目の記事
📌 注意事項
- $skip はドキュメントの順序を変えない
- 大きなオフセットは遅い。小規模データなら問題ない
- 深いページングには、ソートキーに対する $match の範囲クエリに切り替える
🏷️ 関連タグ
💡 関連ケース
📚 関連チュートリアル
❓ よくある質問
Q$skip はインデックスを使いますか?
A直接は使いません。スキップされるドキュメントも読み取られて捨てられます。
Q$skip のページングにパフォーマンス問題はありますか?
Aあります。ページが深くなるほどスキップするドキュメントが増えます。大規模データではソートキーに対する範囲クエリを使いましょう。
Q$skip に 0 を指定できますか?
Aはい。0 は何もスキップせず、実質 no-op です。