sql >> Databáze >  >> NoSQL >> MongoDB

Flask &MongoDB - For Loop nefunguje

Možná budete chtít použít find_one() místo find() který vrátí kurzor na dokumenty, které odpovídají kritériím. find_one() vrátí jeden dokument, který pak lze použít ve slovníku místo kurzoru:

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

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

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

Nebo

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

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

A vaše šablona bude

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

Pokud chcete iterovat celou kolekci a vrátit seznam dokumentů pouze s name a lastname pole, pak byste měli použít find() metoda.Pokud máte relativně malou datovou sadu, následující kód převede celou sadu výsledků (kurzor) na seznam (vše je načteno do paměti):

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

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

Potom iterujte seznam ve své šabloně

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


  1. Dobrý způsob, jak používat socket.io s clusterem na vícejádrovém serveru?

  2. Jak nainstalovat rozšíření php-redis pomocí oficiálního přístupu k obrazu PHP Docker?

  3. podivná chyba mongodb a mongoose:not master and slaveOk=false error

  4. implementace out-of-process cache pomocí Redis ve windows Azure