- Info
See the mongo site for more information. See github for the latest source.
- Author
Alexander Artemenko <svetlyak.40wt@gmail.com>
The PyMongoBongo distribution contains wrappers to add some syntax sugar to PyMongo for easier interaction with the Mongo database using "python way".
- Fixed __len__ method, broken by changes in pymongo 1.1.1. Now mongobongo depends on pymongo >= 1.1.1.
- Fixed ordering in case, when 'find_one' is used.
- Fixed default cursor ordering, now it is applied in the constructor.
Added automatic DBRef usage, when one document contains another. Here is an example:
>>> author = Author(name = 'Alexander') >>> article = Article(title = 'Life is miracle', author = author) >>> Author.objects.count() 0 >>> article.save() >>> article = Article.objects.find_one() >>> article.author.name 'Alexander' >>> Author.objects.count() 1
- Basic support for documents with attributes.
If you have setuptools installed you should be able to do easy_install pymongo-bongo to install PyMongoBongo. Otherwise you can download the project source and do python setup.py install to install.
The PyMongoBongo depends on PyMongo >= 1.1.1
Additional dependencies are:
Here's a basic example:
>>> from pymongo.connection import Connection >>> from mongobongo import Document >>> class Article(Document): ... collection = 'articles' ... def get_full_title(self): ... return '%s (%s)' % (self.title, ', '.join(self.tags)) >>> connection = Connection("localhost", 27017) >>> Article.objects.db = connection.test >>> article = Article(author = 'Alex', title = 'Pink Pony's Life', tags = ['mongo', 'bongo']) >>> article.save() >>> articles = Article.objects.all() >>> len(articles) 1 >>> article = Article(author = 'Alex', title = 'Long Long Python', tags = ['python', 'devel'], subtitle = 'Not such long') >>> article.save() >>> articles = Article.objects.all() >>> len(articles) 2 >>> python_articles = Article.objects.find({'tags': 'python'}) >>> len(python_articles) 1 >>> python_articles[0].title 'Long Long Python'
You will need epydoc installed to generate the documentation. Documentation can be generated by running python setup.py doc. Generated documentation can be found in the doc/ directory.
The easiest way to run the tests is to install nose (easy_install nose) and run nosetests or python setup.py test in the root of the distribution. Tests are located in the test/ directory.
- Slava Vishnyakov, for 'Document.remove' method.
Wanna be listed here? Go to the GitHub, fork the project and send me patches :)