sql >> Database teknologi >  >> NoSQL >> MongoDB

Flask &MongoDB - For Loop virker ikke

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 %}


  1. Spring boot mongodb revisionsfejl

  2. Hvordan får man fjernet dokument i MongoDB?

  3. få aktuel dato og tid i lua in redis

  4. Fordele og ulemper ved MongoDB?