humbledb
humbledb copied to clipboard
HumbleDB - MongoDB Python Object-Document Mapper built on pymongo
HumbleDB - MongoDB Object-Document Mapper
HumbleDB is an extremely lightweight ODM that works with pymongo to provide a convenient and easy to use interface. It enforces strict explictness when a connection to a MongoDB cluster or replica set is being used, by disallowing any read or write interaction outside of a context manager's context block.
.. image:: https://travis-ci.org/shakefu/humbledb.svg?branch=master :target: https://travis-ci.org/shakefu/humbledb
.. image:: https://coveralls.io/repos/shakefu/humbledb/badge.png?branch=master :target: https://coveralls.io/r/shakefu/humbledb?branch=master
Quick Example
.. code-block:: python
from humbledb import Mongo, Document
config_database and config_collection are required attributes
class TestDoc(Document): ... config_database = 'test' ... config_collection = 'testdoc' ... test_key = 't' ... other_key = 'o' ...
When you create a Document instance, you can set its keys via any
mapped attributes you create
doc = TestDoc() doc.test_key = 'Hello' doc.other_key = 'World'
The repr for the instance shows the actual doc
doc TestDoc({'t': 'Hello', 'o': 'World'})
A Document instance is also a dict, but you have to access the key
names directly
doc['o'] u'World'
Or use the mapped attribute
doc[TestDoc.test_key] u'Hello'
The Mongo class manages database connection and is a context manager
with Mongo: ... TestDoc.insert(doc) ...
with Mongo: ... found = TestDoc.find_one() ...
found TestDoc({u'_id': ObjectId('50ad81586112797f89b99606'), u't': u'Hello', u'o': u'World'}) doc TestDoc({'_id': ObjectId('50ad81586112797f89b99606'), 't': 'Hello', 'o': 'World'}) found['_id'] ObjectId('50ad81586112797f89b99606') found['t'] u'Hello' found.test_key u'Hello'
See the documentation for more examples and detailed explanations.
Documentation
The complete documentation can be found on http://humbledb.readthedocs.org.
License
See LICENSE.rst.
Contributors
shakefu <https://github.com/shakefu>_ (Creator, Maintainer)paulnues <https://github.com/paulnues>_