Mongodb:如何查找集合中的最大值
您可以使用以下方法查找 MongoDB 中字段的最大值:
方法一:返回包含最大值的文档
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:返回包含最大值的文档
我们可以使用以下代码返回包含“points”字段中最大值的文档:
db.teams.find().sort({" points ": -1 }).limit( 1 )
该查询返回以下文档:
{ _id: ObjectId("618285361a42e92ac9ccd2c6"), team: 'Cavs', position: 'Guard', points: 33 }
返回此文档是因为它在所有文档中的“points”字段中包含最高值 (33)。
示例 2:仅返回最大值
我们可以使用以下代码仅返回所有文档的“points”字段中的最大值:
db.teams.find().sort({" points ": -1 }).limit( 1 ).toArray().map(function(u){ return u.points})
该查询返回以下结果:
[33]
请注意,仅返回最大值本身 (33),而不是返回包含最大值的整个文档。
其他资源
以下教程解释了如何在 MongoDB 中执行其他常见操作: