Du vil måske bruge find_one()
i stedet for find()
som returnerer en markør til de dokumenter, der matcher kriterierne. find_one()
returnerer et enkelt dokument, som derefter kan bruges i ordbogen, i stedet for 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)
Og din skabelon bliver
<tr>
<td>{{ details['name'] }}</td>
<td>{{ details['lastname'] }}</td>
</tr>
Hvis du ønsker at gentage hele samlingen og returnere en liste over dokumenter med kun name
og lastname
felter, så skal du bruge find()
metode.Hvis du har et relativt lille datasæt, vil følgende kode konvertere hele resultatsættet (Markør) til en liste (alt trækkes ind i hukommelsen):
example = mongo.db.example
details = list(example.find({}, {'name': 1, 'lastname': 1}))
return render_template('blabla.html', details=details)
Gentag derefter listen i din skabelon
{% for doc in details}
<tr>
<td>{{ doc['name'] }}</td>
<td>{{ doc['lastname'] }}</td>
</tr>
{% endfor %}