Asynchronous library for accessing mongodb built upon the tornado IOLoop.
Project description
asyncmongo
==========
AsyncMongo is an asynchronous library for accessing mongo
which is built on the tornado ioloop.
[](https://travis-ci.org/bitly/asyncmongo)
Installation
------------
Installing: `pip install asyncmongo`
Usage
-----
asyncmongo syntax strives to be similar to [pymongo](http://api.mongodb.org/python/current/api/pymongo/collection.html).
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=response['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)
* tailable cursors #15
Requirements
------------
The following two python libraries are required
* [pymongo](http://github.com/mongodb/mongo-python-driver) version 1.9+ for bson library
* [tornado](http://github.com/facebook/tornado)
Issues
------
Please report any issues via [github issues](https://github.com/bitly/asyncmongo/issues)
==========
AsyncMongo is an asynchronous library for accessing mongo
which is built on the tornado ioloop.
[](https://travis-ci.org/bitly/asyncmongo)
Installation
------------
Installing: `pip install asyncmongo`
Usage
-----
asyncmongo syntax strives to be similar to [pymongo](http://api.mongodb.org/python/current/api/pymongo/collection.html).
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=response['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)
* tailable cursors #15
Requirements
------------
The following two python libraries are required
* [pymongo](http://github.com/mongodb/mongo-python-driver) version 1.9+ for bson library
* [tornado](http://github.com/facebook/tornado)
Issues
------
Please report any issues via [github issues](https://github.com/bitly/asyncmongo/issues)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
asyncmongo-1.3.tar.gz
(27.6 kB
view details)
File details
Details for the file asyncmongo-1.3.tar.gz.
File metadata
- Download URL: asyncmongo-1.3.tar.gz
- Upload date:
- Size: 27.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8d69a76bbf0491215eb241b48dad52f3e873859ddd9bcb275ac5ed4d90bbd1c0
|
|
| MD5 |
88af0421a74c46ff4dcddcfa4957da06
|
|
| BLAKE2b-256 |
e57d924572ce809dbfc9ac378f1e42ccf4261533b4b2e59bf664913c490dbc7e
|