无法使用PyMongo进行日期查询

时间:2016-09-09 01:56:48

标签: python mongodb date pymongo

问题如下。我有一个带有变量jobdate的mongo集合,它现在是我想的字符串。但是,我需要运行一个路由来以下列方式查询所述变量:

tree

这里的问题是,当我在邮差上尝试GET请求时,我只是得到一个空的{'结果' :} json对象。我怀疑查询结构本身可能不是问题,而是日期格式化。

我的POST请求如下,如何格式化日期变量以使其可以查询。

@app.route('/active_jobs/<jobdate>', methods = ['GET'])
def get_a_date(jobdate):

ajobs = mongo.db.ajobs

output = []

for q in ajobs.find({'jobdate':jobdate}):

    output.append ({
    'jobdate' : q['jobdate'], 'jobtime' : q['jobtime'],'plant': q['plant'],
    'po': q['po'], 'company': q['company'], 'client': q['client'],
    'jobaddress': q['jobaddress'], 'm3': q['m3'], 'use': q['use'],
    'formula': q['formula'], 'placement': q['placement'],
    'badmix1': q['badmix1'], 'badmix2': q['badmix2'], 'badmix3': q['badmix3'],
    'confirmation': q['confirmation'],'status': q['status']
    })

return jsonify({'result' : output})

注意:就应用而言,日期结构必须是以下YYYY-MM-DD

1 个答案:

答案 0 :(得分:0)

尽管字符串匹配也应该有效,但最好将日期作为日期对象存储在mongo中。你可以使用strptime这样做。对于YYYY-MM-DD格式,它应该在POST中解决这个问题:

from datetime.datetime import strptime

jobdate = strptime(request.json['jobdate'], "%Y-%m-%d").date()