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

时间:2014-07-23 04:31:36

标签: python mongodb aggregation-framework mongoengine

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

2 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:4)

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

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