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 中执行其他常见操作:

MongoDB:如何分组和计数
MongoDB:如何按多个字段分组
MongoDB:如何检查字段是否包含字符串

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注