MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Flask &MongoDB - For Loop không hoạt động

Bạn có thể muốn sử dụng find_one() thay vì find() trả về một con trỏ đến các tài liệu phù hợp với tiêu chí. find_one() trả về một tài liệu duy nhất sau đó có thể được sử dụng trong từ điển, thay vì con trỏ:

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

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

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

Hoặc

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

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

Và mẫu của bạn sẽ là

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

Nếu bạn muốn lặp lại toàn bộ bộ sưu tập và trả về một danh sách nếu tài liệu chỉ có tên namelastname thì bạn nên sử dụng trường find() Nếu bạn có một tập dữ liệu tương đối nhỏ, đoạn mã sau sẽ chuyển đổi toàn bộ tập kết quả (Con trỏ) thành một danh sách (mọi thứ được kéo vào bộ nhớ):

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

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

Sau đó, lặp lại danh sách trong mẫu của bạn

{% 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. Bạn có thể sử dụng truy vấn tìm kiếm trên GridFS bằng cách sử dụng API javascript không?

  2. Bỏ qua các ký tự đặc biệt trước điều kiện đối sánh

  3. Từ chối lời hứa chưa được xử lý:Lỗi:URL không đúng định dạng, không thể phân tích cú pháp

  4. Lặp lại con trỏ Mongodb từ tổng hợp

  5. Dấu phân biệt rõ ràng 'myType' khi 'myType' được tạo động tại thời gian chạy