使用 Motor 查询视图内的多个文档
Querying for more than one document inside of view with Motor
latest doc 中的 Motor
教程展示了如何通过 tornado.gen.couroutine
获取多个文档:
@tornado.gen.coroutine
def do_find():
cursor = db.test_collection.find({'i': {'$lt': 5}})
for document in (yield cursor.to_list(length=100)):
print document
然后同步演示输出:
IOLoop.current().run_sync(do_find)
如何更改此函数,以便我可以从异步 handler
中调用它并获取文档列表?
像这样:
class AdminHandler(tornado.web.RequestHandler):
@tornado.gen.coroutine
def get_users(self):
cursor = self.mc.web_app.user.find()
users = [user['email'] for user in (yield cursor.to_list(length=1000))]
raise tornado.gen.Return(users)
@tornado.gen.coroutine
def get(self):
self.xsrf_token
users = yield self.get_users()
self.render('main/index.html', users=users)
latest doc 中的 Motor
教程展示了如何通过 tornado.gen.couroutine
获取多个文档:
@tornado.gen.coroutine
def do_find():
cursor = db.test_collection.find({'i': {'$lt': 5}})
for document in (yield cursor.to_list(length=100)):
print document
然后同步演示输出:
IOLoop.current().run_sync(do_find)
如何更改此函数,以便我可以从异步 handler
中调用它并获取文档列表?
像这样:
class AdminHandler(tornado.web.RequestHandler):
@tornado.gen.coroutine
def get_users(self):
cursor = self.mc.web_app.user.find()
users = [user['email'] for user in (yield cursor.to_list(length=1000))]
raise tornado.gen.Return(users)
@tornado.gen.coroutine
def get(self):
self.xsrf_token
users = yield self.get_users()
self.render('main/index.html', users=users)