skip() (ドキュメントのスキップ)

最終更新:2026-10-09

skip() (ドキュメントのスキップ)

skip() はカーソルの最初の N 件を破棄します: `db.users.find().sort({ age: 1 }).skip(10)`。limit() と組んでページングに使います。skip() がオフセット、limit() がページサイズです。スキップされたドキュメントも走査する必要があるため、大きなオフセットは遅くなることに注意。大規模データセットでは、インデックス付きフィールドによるキーセットページングを推奨します。

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

📝 構文

db.<collection>.find(<filter>).skip(<count>)

⚙️ パラメータ

数スキップするドキュメント数。

戻り値:N ドキュメントをスキップしたカーソル(チェーン可能)。

▶ 例

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

// skip: 11〜20件目(2ページ目)を取得する
const page2 = db.users.find().sort({ _id: 1 })
  .skip(10).limit(10).toArray()
page2.length

出力:

10

📌 注意事項

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

📚 関連チュートリアル

❓ よくある質問

Qなぜ skip ベースのページングは深くなると遅くなるのですか?
Askip(N) はまず N 件を走査して破棄するため、オフセットが大きいほどスキャンが増えます。深いページにはキーセットページングに切り替えてください。
Qsort なしで skip を使うとどうなりますか?
A順序が未定義になり、ページが重複したりドキュメントが抜けたりします。必ず skip() の前に sort() を使います。
Qskip(0) は何をしますか?
Askip(0) は何もスキップしません。カーソルをそのまま使うのと同じです。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%