2016-05-03 5 views
0

Ich code es mit Python 3, Mongodb und Flasche.Pymongo find() nach Filtervariable zurück leer

Dieser Code gibt ein leeres Dokument zurück. Ich überprüfe die name, die korrekt Wert ist.

@bottle.route('/test1/<name>', method='GET') 
def test_detail(name): 
    result = dbcoll.find({"student": name}) 
    return template('detail',name=result) 

ich zu hart Code modifiziert die name und es kann richtig das Ergebnis zeigen!

@bottle.route('/test1/<name>', method='GET') 
def test_detail(name): 
    name = "peter chan" 
    result = dbcoll.find({"student": name}) 
    return template('detail',name=result) 

Antwort

0

Überprüfen Sie, ob Sie einen Wert in name innerhalb Funktion bekommen, mein Instinkt ist, Sie bekommen None in dieser Variablen.

+0

Danke für den Kommentar. Ich habe 'print (name) 'vor' find() 'gesetzt und es enthält Wert. So wie ich es fest programmiere. – user3562954

0

Das Problem könnte mit dem Leerzeichen im Namen sein. Im Allgemeinen sind Strings URL-codiert und das Leerzeichen wird in "+" umgewandelt. Möglicherweise möchten Sie dies url-deencode und das Ergebnis in der DB-Abfrage verwenden.