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: 複数のフィールドでグループ化する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です