Du kanske vill använda find_one()
istället för find()
som returnerar en markör till de dokument som matchar kriterierna. find_one()
returnerar ett enda dokument som sedan kan användas i ordboken, istället för en markör:
example = mongo.db.example
doc = example.find_one()
details = { 'name' : doc['name'], 'lastname' : doc['lastname'] }
return render_template('blabla.html', details=details)
Eller
example = mongo.db.example
details = example.find_one({}, {'name':1, 'lastname':1})
return render_template('blabla.html', details=details)
Och din mall kommer att vara
<tr>
<td>{{ details['name'] }}</td>
<td>{{ details['lastname'] }}</td>
</tr>
Om du vill iterera hela samlingen och returnera en lista över dokument med bara name
och lastname
fält, så ska du använda find()
metod. Om du har en relativt liten datauppsättning kommer följande kod att konvertera hela resultatuppsättningen (markören) till en lista (allt dras in i minnet):
example = mongo.db.example
details = list(example.find({}, {'name': 1, 'lastname': 1}))
return render_template('blabla.html', details=details)
Iterera sedan listan i din mall
{% for doc in details}
<tr>
<td>{{ doc['name'] }}</td>
<td>{{ doc['lastname'] }}</td>
</tr>
{% endfor %}