An asynchronous library for accessing mongo with tornado.ioloop
Latest commit 3da47c9 May 20, 2014 @jehiah jehiah remove install_requires
Failed to load latest commit information.
asyncmongo tag 1.3 May 20, 2014
test Clean up callbacks Apr 24, 2013
.gitignore bump rev; working install from sdist Oct 10, 2010
.travis.yml Add support for replica sets Apr 3, 2013
ChangeLog tag 1.3 May 20, 2014
LICENSE Address issue 1 Nov 19, 2010
MANIFEST Add support for replica sets Apr 3, 2013 bump 1.3-alpha Apr 3, 2013 remove install_requires May 20, 2014


AsyncMongo is an asynchronous library for accessing mongo which is built on the tornado ioloop.

Build Status


Installing: pip install asyncmongo


asyncmongo syntax strives to be similar to pymongo.

import asyncmongo
import tornado.web

class Handler(tornado.web.RequestHandler):
    def db(self):
        if not hasattr(self, '_db'):
            self._db = asyncmongo.Client(pool_id='mydb', host='', port=27017, maxcached=10, maxconnections=50, dbname='test')
        return self._db

    def get(self):
        self.db.users.find({'username': self.current_user}, limit=1, callback=self._on_response)
        # or
        # conn = self.db.connection(collectionname="...", dbname="...")
        # conn.find(..., callback=self._on_response)

    def _on_response(self, response, error):
        if error:
            raise tornado.web.HTTPError(500)
        self.render('template', full_name=response['full_name'])


Some features are not currently implemented:

  • directly interfacing with indexes, dropping collections
  • retrieving results in batches instead of all at once (asyncmongo's nature means that no calls are blocking regardless of the number of results you are retrieving)
  • tailable cursors #15


The following two python libraries are required


Please report any issues via github issues