Możesz użyć find_one()
zamiast find()
co zwraca kursor do dokumentów spełniających kryteria. find_one()
zwraca pojedynczy dokument, który może być następnie użyty w słowniku, zamiast kursora:
example = mongo.db.example
doc = example.find_one()
details = { 'name' : doc['name'], 'lastname' : doc['lastname'] }
return render_template('blabla.html', details=details)
Lub
example = mongo.db.example
details = example.find_one({}, {'name':1, 'lastname':1})
return render_template('blabla.html', details=details)
Twój szablon będzie
<tr>
<td>{{ details['name'] }}</td>
<td>{{ details['lastname'] }}</td>
</tr>
Jeśli chcesz wykonać iterację całej kolekcji i zwrócić listę dokumentów zawierających tylko name
i lastname
pola, należy użyć find()
metoda.Jeśli masz stosunkowo mały zestaw danych, poniższy kod skonwertuje cały zestaw wyników (Kursor) na listę (wszystko jest wciągane do pamięci):
example = mongo.db.example
details = list(example.find({}, {'name': 1, 'lastname': 1}))
return render_template('blabla.html', details=details)
Następnie przeprowadź iterację listy w swoim szablonie
{% for doc in details}
<tr>
<td>{{ doc['name'] }}</td>
<td>{{ doc['lastname'] }}</td>
</tr>
{% endfor %}