微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

mongodb – 如何在pyMongo中获得最小值

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

collection.find_one(sort=[("myfield", -1)])["myfield"]

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

解决方法:

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

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

此示例假定:

> myfield是一个数值(因此排序顺序有意义确定最小值或最大值)
> myfield存在于返回的匹配文档中(否则Python将在尝试引用不存在的字段时报告KeyError).
>集合中的所有文档都具有myfield值(没有myfield值的文档将在最小数值之前排序)

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

 collection.find_one({"myfield": {"$exists": True}}, sort=[("myfield", 1)])["myfield"]

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

> Use Indexes to Sort Query Results
> What is the compare order for BSON types?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐