如何在pyMongo中获得最小值

Hat*_*sut 8 mongodb python

我有一个包含多个字段的集合,我想从中获取最小值。我知道一个获取最大值的命令:

collection.find_one(sort=[("myfield", -1)])["myfield"]
Run Code Online (Sandbox Code Playgroud)

但不是一个获得分钟。有没有办法做到这一点?

Ste*_*nie 10

您可以反转排序方向以获得最小值而不是最大值:

 # Sort by myfield (ascending value) and return first document
 collection.find_one(sort=[("myfield", 1)])["myfield"]
Run Code Online (Sandbox Code Playgroud)

本示例假设:

  • myfield 是一个数值(因此排序顺序可以确定最小值或最大值)
  • myfield存在于返回的匹配文档中(否则 PythonKeyError在尝试引用不存在的字段时会报告 a )。
  • 集合中的所有文档都有一个myfield值(没有值的文档myfield将排在最小数值之前)

为确保您的排序基于实际具有myfield值的文档,您可以添加$exists到查询条件中:

 collection.find_one({"myfield": {"$exists": True}}, sort=[("myfield", 1)])["myfield"]
Run Code Online (Sandbox Code Playgroud)

有关排序的更多信息,请参阅: