Možná budete chtít použít find_one()
místo find()
který vrátí kurzor na dokumenty, které odpovídají kritériím. find_one()
vrátí jeden dokument, který pak lze použít ve slovníku místo kurzoru:
example = mongo.db.example
doc = example.find_one()
details = { 'name' : doc['name'], 'lastname' : doc['lastname'] }
return render_template('blabla.html', details=details)
Nebo
example = mongo.db.example
details = example.find_one({}, {'name':1, 'lastname':1})
return render_template('blabla.html', details=details)
A vaše šablona bude
<tr>
<td>{{ details['name'] }}</td>
<td>{{ details['lastname'] }}</td>
</tr>
Pokud chcete iterovat celou kolekci a vrátit seznam dokumentů pouze s name
a lastname
pole, pak byste měli použít find()
metoda.Pokud máte relativně malou datovou sadu, následující kód převede celou sadu výsledků (kurzor) na seznam (vše je načteno do paměti):
example = mongo.db.example
details = list(example.find({}, {'name': 1, 'lastname': 1}))
return render_template('blabla.html', details=details)
Potom iterujte seznam ve své šabloně
{% for doc in details}
<tr>
<td>{{ doc['name'] }}</td>
<td>{{ doc['lastname'] }}</td>
</tr>
{% endfor %}