Skip to content
This repository

An asynchronous library for accessing mongo with tornado.ioloop

tag: v1.0.2

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 asyncmongo
Octocat-spinner-32 test
Octocat-spinner-32 .gitignore bump rev; working install from sdist October 10, 2010
Octocat-spinner-32 ChangeLog
Octocat-spinner-32 LICENSE Address issue 1 November 20, 2010
Octocat-spinner-32 MANIFEST
Octocat-spinner-32 README.md
Octocat-spinner-32 setup.py
README.md

asyncmongo

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

Installation

Installing: pip install asyncmongo

Installing form github: pip install git+https://github.com/bitly/asyncmongo.git

Installing from source: git clone git://github.com/bitly/asyncmongo.git; cd asyncmongo; python setup.py install

Usage

asyncmongo syntax strives to be similar to pymongo.

import asyncmongo
import tornado.web

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

    @tornado.web.asynchronous
    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=respose['full_name'])

About

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)
  • native Replica Set support #16
  • tailable cursors #15

Requirements

The following two python libraries are required

Issues

Please report any issues via github issues

Something went wrong with that request. Please try again.