Може да искате да използвате find_one()
вместо find()
който връща курсор към документите, които отговарят на критериите. find_one()
връща един документ, който след това може да се използва в речника, вместо курсор:
example = mongo.db.example
doc = example.find_one()
details = { 'name' : doc['name'], 'lastname' : doc['lastname'] }
return render_template('blabla.html', details=details)
Или
example = mongo.db.example
details = example.find_one({}, {'name':1, 'lastname':1})
return render_template('blabla.html', details=details)
И вашият шаблон ще бъде
<tr>
<td>{{ details['name'] }}</td>
<td>{{ details['lastname'] }}</td>
</tr>
Ако искате да повторите цялата колекция и да върнете списък с документи само с name
и lastname
полета, тогава трябва да използвате find()
метод. Ако имате сравнително малък набор от данни, следният код ще преобразува целия набор от резултати (курсор) в списък (всичко се изтегля в паметта):
example = mongo.db.example
details = list(example.find({}, {'name': 1, 'lastname': 1}))
return render_template('blabla.html', details=details)
След това итерирайте списъка във вашия шаблон
{% for doc in details}
<tr>
<td>{{ doc['name'] }}</td>
<td>{{ doc['lastname'] }}</td>
</tr>
{% endfor %}