【问题标题】:Python-Eve MongoDB Aggregation with ISODatePython-Eve MongoDB 聚合与 ISODate
【发布时间】:2016-04-25 21:59:03
【问题描述】:

我正在尝试使用聚合,其中 $match 条件是日期 $GTE 我给定的日期。

架构:

hashtag_top = {
    'datasource': {
        'source': 'collection',
        'aggregation': {
            'pipeline': [
                { "$match": { "_updated": { "$gte" : "$upd" } } },
                { "$group": { "_id": '$Hashtag', "count": { "$sum": 1 } } },
                { "$sort": { "count": -1 }},
                { "$limit": 10 }
            ]
        }
    },
}

= 没有结果

hashtag_top = {
    'datasource': {
        'source': 'collection',
        'aggregation': {
            'pipeline': [
                { "$match": { "_updated": { "$gte" : ISODate("$upd") } } },
                { "$group": { "_id": '$Hashtag', "count": { "$sum": 1 } } },
                { "$sort": { "count": -1 }},
                { "$limit": 10 }
            ]
        }
    },
}

= 在启动我的 run.py 时给出转储

编辑 要求:

http://myserver:5000/hashtag_top/?aggregate={"$upd": "+myjsisodate+"}

【问题讨论】:

  • 您能否添加一个您的请求示例?
  • 嗨,nicola,是的,它看起来像:myserver:5000/hashtag_top/?aggregate={"$upd": "+myjsisodate+"}
  • 有没有办法使用烧瓶提供这个字段? (我的 python 有点糟糕 :-) 我只想获取具有此聚合的文档,其中 _updated 时间戳>(现在 3 天)。

标签: mongodb flask eve


【解决方案1】:

对 Eve 的 Mongo 聚合框架支持尚未发布,所以我假设您在开发分支上。目前,不解析日期。我为此打开了ticket,它将在 0.7(支持聚合框架)发布之前解决。

更新:Eve 0.7-dev 现在支持日期处理。只需确保以 RFC 1123(前 RFC 822)格式提供日期:

http://myserver:5000/hashtag_top/?aggregate={"$upd": "Mon, 9 May 2016 12:00:00 GMT"}

【讨论】:

  • @HaraldWiesinger 我更新了答案,因为现在支持日期解析。如果它现在适合您,请接受答案。
  • 嘿酷,谢谢!我会在晚上晚些时候试试这个;-)
  • 有什么理由,为什么不把日期作为等日期?
  • 像魅力一样工作。感谢您的快速支持:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-03
  • 2014-05-27
  • 2013-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多