A Python Document-Object Mapper for working with MongoDB
Project description
- Info:
MongoEngine is an ORM-like layer on top of PyMongo.
- Maintainer:
Ross Lawley (http://github.com/rozza)
About
MongoEngine is a Python Object-Document Mapper for working with MongoDB. Documentation available at http://mongoengine-odm.rtfd.org - there is currently a tutorial, a user guide and an API reference.
Installation
If you have setuptools you can use easy_install -U mongoengine. Otherwise, you can download the source from GitHub and run python setup.py install.
Dependencies
pymongo 2.1.1+
sphinx (optional - for documentation generation)
Examples
Some simple examples of what MongoEngine code looks like:
class BlogPost(Document): title = StringField(required=True, max_length=200) posted = DateTimeField(default=datetime.datetime.now) tags = ListField(StringField(max_length=50)) class TextPost(BlogPost): content = StringField(required=True) class LinkPost(BlogPost): url = StringField(required=True) # Create a text-based post >>> post1 = TextPost(title='Using MongoEngine', content='See the tutorial') >>> post1.tags = ['mongodb', 'mongoengine'] >>> post1.save() # Create a link-based post >>> post2 = LinkPost(title='MongoEngine Docs', url='hmarr.com/mongoengine') >>> post2.tags = ['mongoengine', 'documentation'] >>> post2.save() # Iterate over all posts using the BlogPost superclass >>> for post in BlogPost.objects: ... print '===', post.title, '===' ... if isinstance(post, TextPost): ... print post.content ... elif isinstance(post, LinkPost): ... print 'Link:', post.url ... print ... === Using MongoEngine === See the tutorial === MongoEngine Docs === Link: hmarr.com/mongoengine >>> len(BlogPost.objects) 2 >>> len(HtmlPost.objects) 1 >>> len(LinkPost.objects) 1 # Find tagged posts >>> len(BlogPost.objects(tags='mongoengine')) 2 >>> len(BlogPost.objects(tags='mongodb')) 1
Tests
To run the test suite, ensure you are running a local instance of MongoDB on the standard port, and run python setup.py test.
Community
Contributing
The source is available on GitHub - to contribute to the project, fork it on GitHub and send a pull request, all contributions and suggestions are welcome!
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
File details
Details for the file mongoengine-0.6.17.tar.gz
.
File metadata
- Download URL: mongoengine-0.6.17.tar.gz
- Upload date:
- Size: 142.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 852e7417c0fef34350afe89622eaab11178dc2beee96aa4d7b559e6e4e03f1d1 |
|
MD5 | 0f23e354662903f92e007b657ed87dd2 |
|
BLAKE2b-256 | f72ea738f7c449b8c0f9e2e68fb31834fc06a828273317424a044ecce160e547 |