Mongodb: コレクション内の最大値を見つける方法


次の方法を使用して、MongoDB のフィールドの最大値を見つけることができます。

方法 1: 最大値を含むドキュメントを返す

 db.teams.find().sort({" field ": -1 }).limit( 1 )

このコードは、コレクション内のすべてのドキュメントを特定のフィールドに基づいて降順に並べ替え、最初のドキュメントのみを返します。

方法 2: 最大値のみを返す

 db.teams.find().sort({" field ": -1 }).limit( 1 ).toArray().map(function(u){ return u.field})

次の例は、次の文書を使用して収集チームで各方法を使用する方法を示しています。

 db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 31 })
db.teams.insertOne({team: " Spurs ", position: " Guard ", points: 22 })
db.teams.insertOne({team: " Rockets ", position: " Center ", points: 19 })
db.teams.insertOne({team: " Warriors ", position: " Forward ", points: 26 })
db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })

例 1: 最大値を含むドキュメントを返す

次のコードを使用すると、「ポイント」フィールドに最大値を含むドキュメントを返すことができます。

 db.teams.find().sort({" points ": -1 }).limit( 1 ) 

このクエリは次のドキュメントを返します。

 { _id: ObjectId("618285361a42e92ac9ccd2c6"),
  team: 'Cavs',
  position: 'Guard',
  points: 33 }

このドキュメントは、すべてのドキュメントの中で「ポイント」フィールドに最高値 (33) が含まれているために返されます。

例 2: 最大値のみを返す

次のコードを使用すると、すべてのドキュメントの「ポイント」フィールドの最大値のみを返すことができます。

 db.teams.find().sort({" points ": -1 }).limit( 1 ).toArray().map(function(u){ return u.points})

このクエリは次の結果を返します。

 [33]

最大値を含むドキュメント全体ではなく、最大値自体 (33) のみが返されることに注意してください。

追加リソース

次のチュートリアルでは、MongoDB で他の一般的な操作を実行する方法について説明します。

MongoDB: グループ化してカウントする方法
MongoDB: 複数のフィールドでグループ化する方法
MongoDB: フィールドに文字列が含まれているかどうかを確認する方法

コメントを追加する

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