Mongoengine以可读形式返回日期

2024-03-29 06:11:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用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格式返回它们?你知道吗

谢谢你的帮助,谢谢


Tags: to数据对象fromjsondate定义mongo
1条回答
网友
1楼 · 发布于 2024-03-29 06:11:39

我已经找到了一种方法来实现这一点,不过,我想知道是否有更好的方法来实现这一点。你知道吗

我就是这么做的:

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))

它起作用了。你知道吗

相关问题 更多 >