sort() (結果の並べ替え)
最終更新:2026-10-09
sort() (結果の並べ替え)
sort() は指定したフィールドでカーソルの結果を並べ替えます: `db.users.find().sort({ age: 1, name: -1 })`。値の 1 は昇順、-1 は降順で、フィールドごとに適用されます。並べ替えはサーバー側で実行され、インデックスに支えられた場合が最速です。インデックス外の並べ替えはメモリ内で行われ、100MB の上限に達することがあります。
| カテゴリ | カーソル |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
db.<collection>.find(<filter>).sort(<sortKey>)
⚙️ パラメータ
| ソートキー | フィールドと方向のマッピング(例: {age: 1, name: -1})。 |
|---|
戻り値:ソートキーで並べ替えたカーソル(チェーン可能)。
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// sort: 年齢昇順、名前降順で3件取得する
const result = db.users.find()
.sort({ age: 1, name: -1 })
.limit(3)
.toArray()
result
出力:
[
{ _id: ObjectId('64c8a1b20000000000000001'), name: 'Alice', age: 21 },
{ _id: ObjectId('64c8a1b20000000000000002'), name: 'Bob', age: 25 }
]
📌 注意事項
- 1 は昇順、-1 は降順。複数フィールドは左から右に適用
- インデックスに支えられた並べ替えが最も高性能
- インデックス外の並べ替えで 100MB 上限を超えるとエラー。allowDiskUse() が役立つ
🏷️ 関連タグ
💡 関連ケース
📚 関連チュートリアル
❓ よくある質問
Qsort の 1 と -1 は何を意味しますか?
A1 は昇順、-1 は降順です。{age: -1} は古い順に並べます。
Q複数フィールドで並べ替えるには?
Aソートキーに複数のフィールドを渡します。例: {age: 1, name: -1}。年齢が先、次に名前。
Q並べ替えが遅い場合は?
Aソートフィールドに複合インデックスを追加します。インデックス外のソートはメモリを使い、巨大な結果には allowDiskUse() が役立ちます。