sql >> データベース >  >> NoSQL >> MongoDB

FlaskとMongoDB-Forループが機能しない

    find_one() find() これは、条件に一致するドキュメントにカーソルを返します。 find_one () カーソルの代わりに辞書で使用できる単一のドキュメントを返します:

    example = mongo.db.example
    doc = example.find_one()
    
    details = { 'name' : doc['name'], 'lastname' : doc['lastname'] }
    
    return render_template('blabla.html', details=details)
    

    または

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

    そして、あなたのテンプレートは

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

    コレクション全体を繰り返し、 nameだけのドキュメントの場合はリストを返します。 およびlastname フィールドの場合は、 find() メソッド。データセットが比較的小さい場合、次のコードは結果セット全体(カーソル)をリストに変換します(すべてがメモリにプルされます):

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

    次に、テンプレート内のリストを繰り返します

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


    1. Spark、Python、MongoDBを連携させる

    2. Flaskで応答を返さずにビュー関数を作成する

    3. mongodbaggregateを使用してドキュメント全体を取得する方法

    4. マングースの関係と外部キーを理解する