无论如何使用mongoengine在列中获得最大值?

问题描述 投票:2回答:2

我想知道是否有办法使用Mongoengine在MongoDB集合的列中获得最大值。可能吗?

python mongodb aggregation-framework mongoengine
2个回答
4
投票

如果具有您的序数值的列名为“max_column”:

MyDocument.objects().order_by("-max_column").limit(-1).first()

4
投票

隐藏在文档中(请注意请求补丁)是.get_collection()访问器,它返回集合的原始pymongo对象。在这里你可以使用像.aggregate()这样的操作

ClassModel._get_collection().aggregate([
    { "$group": {
        "_id": Null,
        "max_column": { "$max": "$column" }
    }}
])

当然,ClassModel是您正在使用的实际类,“column”是您想要最大值的列的名称,使用$max运算符获得。字段上的$前缀是聚合框架如何识别管道中的字段变量。

© www.soinside.com 2019 - 2024. All rights reserved.