$natural (物理保存順序)
最終更新:2026-10-09
$natural (物理保存順序)
$natural は、コレクションの物理的な保存順でドキュメントを返します。`{ $natural: 1 }` が順方向、`{ $natural: -1 }` が逆方向です。capped collection や診断用途で特に便利です。$natural はインデックスを使うクエリとは組み合わせられません — 明示的にインデックスを使わない自然スキャンを要求するためです。
| カテゴリ | 投影 |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ $natural: <1 or -1> }
⚙️ パラメータ
| 方向 | 1 は昇順、-1 は降順。 |
|---|
戻り値:物理ストレージ順のドキュメント
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// $natural: ログを保存順で取得
// capped collection では書き込み順になる
db.logs.find().sort({ $natural: -1 })
// 順方向で最初の 10 件
db.logs.find().sort({ $natural: 1 }).limit(10)
出力:
// ログを逆順(新しい順)で返す。2 つ目のクエリは順方向の最初の 10 件を取得する
📌 注意事項
- 順序は長期的に安定しない。コンパクションや移行で変わる
- capped collection では _id 順の代わりに使える
- インデックスを使うクエリとは併用できない
🏷️ 関連タグ
💡 関連ケース
さらなる実践ケースを近日公開予定。
📚 関連チュートリアル
❓ よくある質問
Q$natural はどの順序を使いますか?
Aコレクションの物理的な保存順です。通常は挿入順に近いですが、保証はありません。
Q$natural はインデックスを使えますか?
Aいいえ。設計上、インデックスを使わない自然スキャンです。
Q$natural はいつ使うべきですか?
Acapped collection のログ取得や診断用途で使います。