MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Flask i MongoDB - For Loop nie działa

Możesz użyć find_one() zamiast find() co zwraca kursor do dokumentów spełniających kryteria. find_one() zwraca pojedynczy dokument, który może być następnie użyty w słowniku, zamiast kursora:

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

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

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

Lub

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

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

Twój szablon będzie

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

Jeśli chcesz wykonać iterację całej kolekcji i zwrócić listę dokumentów zawierających tylko name i lastname pola, należy użyć find() metoda.Jeśli masz stosunkowo mały zestaw danych, poniższy kod skonwertuje cały zestaw wyników (Kursor) na listę (wszystko jest wciągane do pamięci):

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

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

Następnie przeprowadź iterację listy w swoim szablonie

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Alpakka MongoDB - określ typ w MongoSource

  2. Losowy dokument Mongoid

  3. Wskazówki dotyczące planowania schematu MongoDB

  4. Moja metoda $push w Mongoose nie działa dobrze

  5. mongoDB - średnia z wartości tablicy