0

私はデータベースを持っています。その中で、挿入されたすべてのエントリを表示したいと考えています。そのために、ルート「/db」を作成し、以下の RequestHandler を追加しました。

class dbHandler(RequestHandler):
    @gen.coroutine
    def get(self):
        db = self.settings['db']
        result = yield db.ip.find()
        for res in result:
           self.write(res)

これにより、/db ルートを開くとエラー 505 が表示されます。IPのデータを取得するには?

4

2 に答える 2

1

モーターfindはカーソルのみを返します。そうではありませんFuture-譲ることはできません。で反復処理するfetch_nextか、 を使用してより多くのデータ (またはdocsto_listの詳細情報) を取得できます。ある種の例

@gen.coroutine
def get(self):
    db = self.settings['db']
    cursor = db.ip.find()
    res = yield cursor.to_list(length=100)
    self.write(res)
于 2015-12-23T21:45:48.127 に答える
0

モーターは非同期です。のようなデータベース操作の結果を取得するには、返される Future を結果に解決するfind必要があります。yield

cursor = db.test_collection.find({'i': {'$lt': 5}}).sort('i')
for document in (yield cursor.to_list(length=100)):
    self.write(str(document))

詳細については、チュートリアルを参照してください。

http://motor.readthedocs.org/en/stable/tutorial-tornado.html#querying-for-more-than-one-document

于 2015-12-23T21:47:21.067 に答える