Skip to content

Latest commit

 

History

History
115 lines (96 loc) · 4.65 KB

tools.rst

File metadata and controls

115 lines (96 loc) · 4.65 KB

Tools

Many tools have been written for working with PyMongo. If you know of or have created a tool for working with MongoDB from Python please list it here.

Note

We try to keep this list current. As such, projects that have not been updated recently or appear to be unmaintained will occasionally be removed from the list or moved to the back (to keep the list from becoming too intimidating). If a project gets removed that is still being developed or is in active use please let us know or add it back.

ORM-like Layers

Some people have found that they prefer to work with a layer that has more features than PyMongo provides. Often, things like models and validation are desired. To that end, several different ORM-like layers have been written by various authors.

It is our recommendation that new users begin by working directly with PyMongo, as described in the rest of this documentation. Many people have found that the features of PyMongo are enough for their needs. Even if you eventually come to the decision to use one of these layers, the time spent working directly with the driver will have increased your understanding of how MongoDB actually works.

MongoKit
The MongoKit framework is an ORM-like layer on top of PyMongo. There is also a MongoKit google group.
Ming
Ming (the Merciless) is a library that allows you to enforce schemas on a MongoDB database in your Python application. It was developed by SourceForge in the course of their migration to MongoDB. See the introductory blog post for more details.
MongoEngine
MongoEngine is another ORM-like layer on top of PyMongo. It allows you to define schemas for documents and query collections using syntax inspired by the Django ORM. The code is available on github; for more information, see the tutorial.
Django
The Django fork adds nosql support to Django and implements a mongodb backend that handles mongodb databases. There are 2 repos being used for this fork, the one in the first link and this Django. Both repositories are synchronized and have the same code.
pymongo-bongo
pymongo-bongo is a project to add some syntactic sugar on top of PyMongo. It is open source and the code is available on github.

Smaller or less well-maintained projects (in order from most to least recently committed to at the time of the last update to this list):

Framework Tools

This section lists tools and adapters that have been designed to work with various Python frameworks and libraries.

mango
mango provides MongoDB backends for Django sessions and authentication (bypassing :mod:`django.db` entirely).
mongodb_beaker
mongodb_beaker is a project to enable using MongoDB as a backend for beaker's caching / session system. The source is on bitbucket.
MongoLog
MongoLog is a Python logging handler that stores logs in MongoDB using a capped collection.
c5t
c5t is a content-management system using TurboGears and MongoDB.
rod.recipe.mongodb
rod.recipe.mongodb is a ZC Buildout recipe for downloading and installing MongoDB.
repoze-what-plugins-mongodb
repoze-what-plugins-mongodb is a project working to support a plugin for using MongoDB as a backend for :mod:`repoze.what`.

Alternative Drivers

These are alternatives to PyMongo.

PyMonga
PyMonga is an asynchronous Python driver for MongoDB, although it is not currently recommended for production use.