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: フィールドに文字列が含まれているかどうかを確認する方法