Asynchronous MongoDB ORM for Tornado


Keywords
monguo, mongo, mongodb, pymongo, gridfs, bson, motor, tornado, ORM, asynchronous
License
MIT-feh
Install
pip install monguo==0.2.2

Documentation

Monguo

https://github.com/shiyanhui/monguo/blob/master/doc/source/_static/monguo.jpg?raw=true
Info: Monguo is a full-featured, asynchronous MongoDB ORM with Motor dirver for Tornado applications.
Author: Lime YH.Shi
https://pypip.in/v/monguo/badge.png https://pypip.in/d/monguo/badge.png

Installation

$ pip install monguo

Dependencies

Monguo works in all the environments officially supported by Tornado and Motor. It requires:

Examples

from monguo import *

Connection.connect('db') # connect to database

class UserDocument(Document):
    name  = StringField(required=True, unique=True, max_length=20)
    email = EmailField(required=True)
    age   = IntegerField()
    sex   = StringField(default='male', candidate=['male', 'female'])

    meta = {
        'collection': 'user'
    }

    @gen.coroutine
    def get_user_list(skip=0, limit=None):
        cursor = UserDocument.find().skip(skip)

        if limit is not None:
            assert isinstance(limit, int) and limit > 0
            cursor.limit(limit)

        user_list = yield cursor.to_list(None)
        raise gen.Return(user_list)

# insert
user_id = yield UserDocument.insert({
    'name': 'Bob',
    'email': 'bob@gmail.com'
})

# query
user = yield UserDocument.find_one({'name': 'Bob'})
user_list = yield UserDocument.get_user_list()

# update
yield UserDocument.update(
    {'_id': user_id},
    {'$set': {'age': 19}})

# delete
yield UserDocument.remove({'_id': user_id})