2016-09-09 4 views
2

問題は次のとおりです。私は今のように私はsuppose.Howeverだろう文字列である変数JOBDATE、とMongoのコレクションを持って、私は、クエリへのルートを実行する必要があり、次のように変数言った:ここPyMongoで日付クエリを作成できません

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

問題があります私がPostmanでGETリクエストをしようとすると、空の{'result':} jsonオブジェクトが得られます。私は、クエリの構造自体が問題ではなく、日付の書式設定ではないと思われます。

私のPOSTリクエストは以下の通りです。日付変数をどのようにフォーマットして、話すことができますか。

@app.route('/active_jobs/new', methods=['POST']) 
def add_job(): 

ajobs = mongo.db.ajobs 

jobdate = request.json['jobdate']# date of job 
jobtime = request.json['jobtime']# time of job 
plant = request.json['plant']# plant for job 
po = request.json['po']# production order 
company = request.json['company']# client company name 
client = request.json['client']# person in charge 
jobaddress = request.json['jobaddress']#job address 
use = request.json['use']# concrete use in site 
m3 = request.json['m3']#job volume 
formula = request.json['formula']#job formula 
placement = request.json['placement']#type of placement 
badmix1 = request.json['badmix1']#batch admixture add-on 
badmix2 = request.json['badmix2']#batch admixture add-on 
badmix3 = request.json['badmix3']#batch admixture add-on 
confirmation = request.json['confirmation']#level of confirmation for job 
status = request.json['status']#job status 

ajob_id = ajobs.insert({ 
'jobdate' : jobdate, 'jobtime' : jobtime, 'plant': plant, 
'po' : po, 'company' : company, 'client' : client, 'jobaddress' : jobaddress, 
'use' : use, 'm3' : m3, 'formula' : formula, 'placement' : placement, 
'badmix1' : badmix1, 'badmix2' : badmix2, 'badmix3' : badmix3, 
'confirmation' : confirmation, 'status' : status 
}) 

new_job = ajobs.find_one({'_id' : ajob_id}) 

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

return jsonify({'verify new job': output}) 

注:アプリの目的のために、日付の構造は、次のYYYY-MM-DD

答えて

0

でなければならない文字列マッチングでも動作するはずですが、それはようモンゴで日付を格納するための最良のだろう日付オブジェクト。あなたはstrptimeを使ってそうすることができます。 YYYY-MM-DDという形式の場合、POSTのような形になります。

from datetime.datetime import strptime 

jobdate = strptime(request.json['jobdate'], "%Y-%m-%d").date() 
関連する問題