Mongoengine-以可读格式返回日期

时间:2018-08-22 10:41:18

标签: python mongodb flask mongoengine

我正在使用mongoengine在mongo中查询一组对象,我必须将结果作为JSON数组返回。

这是定义对象的方式:

class OptimisedSummary(Document):
    date_from = DateTimeField()
    date_to = DateTimeField()
    (...)

这是我返回数据的方式:

return OptimisedSummary.objects(date_from__gte=_date_from, date_to__lte=_date_to).to_json()

问题是我的对象具有日期字段,并且它们的发送方式如下:

"date_from": {
            "$date": 1534334450799
        },
"date_to": {
            "$date": 1534420850799
        },

有什么方法可以将其预格式化为readable格式?

感谢您的帮助,谢谢

1 个答案:

答案 0 :(得分:0)

不过,我想知道一种可以真正实现此目的的方法,

这就是我所做的:

pipeline = [
    {
        "$match": {
            "date_from": {"$gte": _date_from},
            "date_to": {"$lte": _date_to}
        }
    },
    {
        "$project": {"array": True,
                     "date_from": {
                         "$dateToString": {
                             "format": "%Y-%m-%d",
                             "date": "$date_from"
                         }
                     },
                     "date_to": {
                         "$dateToString": {
                             "format": "%Y-%m-%d",
                             "date": "$date_to"
                         }
                     },
                     "field1": 1,
                     "field2": 1
                     }
    }
]

result = OptimisedSummary.objects.aggregate(*pipeline)

return JSONEncoder().encode(list(result))

有效。