我有一个包含多个字段的集合,我想从中获取最小值。我知道一个获取最大值的命令:
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)
有关排序的更多信息,请参阅:
归档时间: |
|
查看次数: |
8346 次 |
最近记录: |