たとえば、コレクション レコードのフィールド a に昇順のインデックスを作成します。
db.records.createIndex( { a: 1 } )
このインデックスは、インデックスを逆の順序でトラバースすることにより、昇順ソートa
と降順ソートをサポートできます。a
db.records.find().sort( { a: 1 } )
db.records.find().sort( { a: -1 } )
検索の結果はデフォルトで次のようにソートされるため、電話については正しい$natural
— https://docs.mongodb.com/manual/reference/method/cursor.sort/#return-in-natural-order
複合インデックスの場合、順序が重要です。たとえば、インデックス キー パターンはon での並べ替えをサポート{ a: 1, b: 1 }
でき{ a: 1, b: 1 }
ますが、 onではサポートできません{ b: 1, a: 1 }
。
並べ替えに複合インデックスを使用するクエリの場合、cursor.sort() ドキュメント内のすべてのキーに対して指定された並べ替え方向は、インデックス キー パターンに一致するか、インデックス キー パターンの逆に一致する必要があります。たとえば、インデックス キー パターンはandでの並べ替えをサポート{ a: 1, b: -1 }
できますが、orでの並べ替えはサポートできません。{ a: 1, b: -1 }
{ a: -1, b: 1 }
{ a: -1, b: -1 }
{a: 1, b: 1}
ソース: https://docs.mongodb.com/manual/tutorial/sort-results-with-indexes/