Mongodb: 複数のフィールドで並べ替える方法
次の構文を使用して、MongoDB 内のドキュメントを複数のフィールドで並べ替えることができます。
db.myCollection.find().sort( { " field1 ": 1, " field2 ": -1 } )
この特定のコードは、 myCollectionというコレクション内のドキュメントを、最初にフィールド 1 の昇順で並べ替え、次にフィールド 2 の降順で並べ替えます。
次の例は、次のドキュメントを使用して収集チームでこの構文を使用する方法を示しています。
db.teams.insertOne({team: " Mavs ", points: 30, rebounds: 8}) db.teams.insertOne({team: " Spurs ", points: 30, rebounds: 12}) db.teams.insertOne({team: " Rockets ", points: 20, rebounds: 7}) db.teams.insertOne({team: " Warriors ", points: 25, rebounds: 5}) db.teams.insertOne({team: " Cavs ", points: 25, rebounds: 9})
例 1: MongoDB の複数のフィールドによる並べ替え (昇順)
次のコードを使用すると、最初に「ポイント」を増やし、次に「バウンス」を増やすことによって、 Teamsコレクション内のドキュメントを並べ替えることができます。
db.teams.find().sort( { " points ": 1, " rebounds ": 1 } )
このクエリは次の結果を返します。
{ _id: ObjectId("61f952c167f1c64a1afb203b"), team: 'Rockets', points: 20, rebounds: 7 } { _id: ObjectId("61f952c167f1c64a1afb203c"), team: 'Warriors', points: 25, rebounds: 5 } { _id: ObjectId("61f952c167f1c64a1afb203d"), team: 'Cavs', points: 25, rebounds: 9 } { _id: ObjectId("61f952c167f1c64a1afb2039"), team: 'Mavs', points: 30, rebounds: 8 } { _id: ObjectId("61f952c167f1c64a1afb203a"), team: 'Spurs', points: 30, rebounds: 12 }
ドキュメントは、「ポイント」フィールドを (最小から最大の順に) 増加させ、次に「リバウンド」フィールドを (最小から最大の順に) 増加させることによって並べ替えられることに注意してください。
例 2: MongoDB の複数のフィールドによる並べ替え (降順)
次のコードを使用すると、まず「ポイント」を減らし、次に「バウンス」を減らしてチームコレクション内のドキュメントを並べ替えることができます。
db.teams.find().sort( { " points ": -1, " rebounds ": -1 } )
このクエリは次の結果を返します。
{ _id: ObjectId("61f952c167f1c64a1afb203a"), team: 'Spurs', points: 30, rebounds: 12 } { _id: ObjectId("61f952c167f1c64a1afb2039"), team: 'Mavs', points: 30, rebounds: 8 } { _id: ObjectId("61f952c167f1c64a1afb203d"), team: 'Cavs', points: 25, rebounds: 9 } { _id: ObjectId("61f952c167f1c64a1afb203c"), team: 'Warriors', points: 25, rebounds: 5 } { _id: ObjectId("61f952c167f1c64a1afb203b"), team: 'Rockets', points: 20, rebounds: 7 }
文書は、「ポイント」フィールドを (最大から最小へ) 減少させてから、「リバウンド」フィールドを (最大から最小へ) 減少させることによってソートされることに注意してください。
注: sort関数の完全なドキュメントはここで見つけることができます。
追加リソース
次のチュートリアルでは、MongoDB で他の一般的な操作を実行する方法について説明します。
MongoDB: 日付で並べ替える方法
MongoDB: グループ化してカウントする方法
MongoDB: 複数のフィールドでグループ化する方法