find (ドキュメントのクエリ)
最終更新:2026-10-09
find (ドキュメントのクエリ)
find は MongoDB のクエリコマンドです。mongosh では通常 db.collection.find(filter, projection) のヘルパーを使います。生の形式は db.runCommand({ find: 'orders', filter: {...} }) です。filter、projection、sort、limit、skip、batchSize をサポートします。結果はカーソルで、id が 0 以外なら以降のバッチに getMore が必要です。
| カテゴリ | 管理コマンド |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
db.orders.find({ status: "shipped" }).limit(10)
db.runCommand({
find: "orders",
filter: { status: "shipped" },
limit: 10
})
⚙️ パラメータ
| filter | クエリ述語のドキュメント。 |
|---|---|
| projection | フィールド選択(1=含める / 0=除外する)。 |
| sort/limit/skip | ソート順、結果上限、スキップ。 |
戻り値:カーソルを返します。firstBatch にマッチを保持し、id が 0 以外の場合は getMore で追加バッチを取得します
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// find: 生コマンド形式
use shop
db.runCommand({
find: 'orders',
filter: { status: 'shipped' },
sort: { createdAt: -1 },
limit: 5
})
出力:
{ cursor: { firstBatch: [ { _id: ObjectId('...'), status: 'shipped' } ], id: 0, ns: 'shop.orders' }, ok: 1 }
📌 注意事項
- 日々の利用は find() ヘルパーで十分。生形式は batchSize を微調整する
- id != 0 のカーソル結果は getMore が必要
- explain() でインデックス使用状況を確認する
🏷️ 関連タグ
💡 関連ケース
さらなる実践ケースを近日公開予定。
📚 関連チュートリアル
❓ よくある質問
QfindOne と find の関係は?
AfindOne は find に limit: 1 を付けて最初のドキュメントを返すラッパーです。
Qカーソルの結果をすべて取得するには?
AtoArray() を呼ぶか反復します。id が 0 以外ならドライバが自動で getMore を発行します。
Qクエリの性能はどう確認しますか?
Aexplain() を実行し、インデックス使用状況と executionStats を確認します。