All Projects → shiyanhui → Monguo

shiyanhui / Monguo

Licence: other
Asynchronous MongoDB ORM for Tornado

Programming Languages

python
139335 projects - #7 most used programming language

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

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': '[email protected]'
})

# 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})
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].