sql >> Database >  >> NoSQL >> MongoDB

Flask &MongoDB - For Loop werkt niet

Misschien wilt u find_one() in plaats van find() die een cursor terugbrengt naar de documenten die aan de criteria voldoen. find_one() geeft een enkel document terug dat vervolgens in het woordenboek kan worden gebruikt in plaats van een cursor:

example = mongo.db.example
doc = example.find_one()

details = { 'name' : doc['name'], 'lastname' : doc['lastname'] }

return render_template('blabla.html', details=details)

Of

example = mongo.db.example
details = example.find_one({}, {'name':1, 'lastname':1})

return render_template('blabla.html', details=details)

En uw sjabloon wordt

<tr>
    <td>{{ details['name'] }}</td>
    <td>{{ details['lastname'] }}</td>
</tr>

Als u de hele verzameling wilt herhalen en een lijst wilt retourneren als documenten met alleen de name en lastname velden, moet u de find() method.Als je een relatief kleine dataset hebt, zal de volgende code de volledige resultatenset (Cursor) omzetten in een lijst (alles wordt in het geheugen getrokken):

example = mongo.db.example
details = list(example.find({}, {'name': 1, 'lastname': 1}))

return render_template('blabla.html', details=details)

Herhaal vervolgens de lijst in uw sjabloon

{% for doc in details}
<tr>
    <td>{{ doc['name'] }}</td>
    <td>{{ doc['lastname'] }}</td>
</tr>
{% endfor %}


  1. Illegale break-statement (Node.js)

  2. Redis probeert verbinding te maken met localhost op Heroku in plaats van REDIS_URL

  3. Is er een vergelijking van NoSQL-oplossingen (wat is beter in bepaalde situaties?)

  4. Hoe evalueert MongoDB meerdere $or-statements?