Skip to main content
Help us improve PyPI by participating in user testing. All experience levels needed!

A MongoDB object-document mapping layer for Python

Project description


MongoMonkey is a simple ODM for mongo.
The key idea was to use standard pymongo api, without overriding it.

Example of usage:

from pymongo import Connection
from mongomonkey import Model, Field, list_of

class Book(Model):
title = Field(unicode)
page_count = Field(int)

class Author(Model):
name = Field(unicode)
books = Field(list_of(Book))

connection = Connection()
db = connection.test_database
collection = db.test_collection

book1 = Book(title=u"Alice's Adventures in Wonderland", page_count=191)
author = Author(name=u"Lewis Carroll")
# Accessing by field attribute
author.books = [book1]
# Accessing like dict item
author['books'].append({u"title": u"A Tangled Tale", u"page_count": 152})

# Saving object # By default pymongo would attach '_id' to this document.

# Retrieving object
author = collection.find_one(as_class=Author)

Recursive embedding:

from mongomonkey import Model, Field, list_of

class Node(Model):
title = Field(unicode)
# You can use 'self' to point on currently creating Model
child1 = Field('self')
# Also you can use a name of a model to point on it
child2 = Field('Node')

# Printing instance of Node
print Node(title=u"root", child1=Node(title=u"Child1"), child2=Node(title=u"Child2"))

Developing and Contributing

If you have any question, ideas or improvements feel free to fork or add an issue
on github

Project details

Release history Release notifications

This version
History Node


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
mongomonkey-0.1.tar.gz (6.5 kB) Copy SHA256 hash SHA256 Source None Dec 23, 2012

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page