<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Tools — PyMongo 3.7.2 documentation</title> <link rel="stylesheet" href="_static/pydoctheme.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> <script type="text/javascript" src="_static/jquery.js"></script> <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <script type="text/javascript" src="_static/language_data.js"></script> <script type="text/javascript" src="_static/sidebar.js"></script> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> <link rel="next" title="Contributors" href="contributors.html" /> <link rel="prev" title="grid_file – Tools for representing files stored in GridFS" href="api/gridfs/grid_file.html" /> </head><body> <div class="related" role="navigation" aria-label="related navigation"> <h3>Navigation</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="genindex.html" title="General Index" accesskey="I">index</a></li> <li class="right" > <a href="py-modindex.html" title="Python Module Index" >modules</a> |</li> <li class="right" > <a href="contributors.html" title="Contributors" accesskey="N">next</a> |</li> <li class="right" > <a href="api/gridfs/grid_file.html" title="grid_file – Tools for representing files stored in GridFS" accesskey="P">previous</a> |</li> <li class="nav-item nav-item-0"><a href="index.html">PyMongo 3.7.2 documentation</a> »</li> </ul> </div> <div class="document"> <div class="documentwrapper"> <div class="bodywrapper"> <div class="body" role="main"> <div class="section" id="tools"> <h1>Tools<a class="headerlink" href="#tools" title="Permalink to this headline">¶</a></h1> <p>Many tools have been written for working with <strong>PyMongo</strong>. If you know of or have created a tool for working with MongoDB from Python please list it here.</p> <div class="admonition note"> <p class="first admonition-title">Note</p> <p>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).</p> <p class="last">If a project gets removed that is still being developed or is in active use please let us know or add it back.</p> </div> <div class="section" id="orm-like-layers"> <h2>ORM-like Layers<a class="headerlink" href="#orm-like-layers" title="Permalink to this headline">¶</a></h2> <p>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.</p> <p>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.</p> <dl class="docutils"> <dt>PyMODM</dt> <dd><a class="reference external" href="https://pypi.python.org/pypi/pymodm">PyMODM</a> is an ORM-like framework on top of PyMongo. PyMODM is maintained by engineers at MongoDB, Inc. and is quick to adopt new MongoDB features. PyMODM is a “core” ODM, meaning that it provides simple, extensible functionality that can be leveraged by other libraries to target platforms like Django. At the same time, PyMODM is powerful enough to be used for developing applications on its own. Complete documentation is available on <a class="reference external" href="https://pymodm.readthedocs.io/en/stable/">readthedocs</a> in addition to a <a class="reference external" href="https://gitter.im/mongodb/pymodm">Gitter channel</a> for discussing the project.</dd> <dt>Humongolus</dt> <dd><a class="reference external" href="https://github.com/entone/Humongolus">Humongolus</a> is a lightweight ORM framework for Python and MongoDB. The name comes from the combination of MongoDB and <a class="reference external" href="http://en.wikipedia.org/wiki/Homunculus">Homunculus</a> (the concept of a miniature though fully formed human body). Humongolus allows you to create models/schemas with robust validation. It attempts to be as pythonic as possible and exposes the pymongo cursor objects whenever possible. The code is available for download <a class="reference external" href="https://github.com/entone/Humongolus">at GitHub</a>. Tutorials and usage examples are also available at GitHub.</dd> <dt>Ming</dt> <dd><a class="reference external" href="http://merciless.sourceforge.net/">Ming</a> (the Merciless) is a library that allows you to enforce schemas on a MongoDB database in your Python application. It was developed by <a class="reference external" href="http://sourceforge.net/">SourceForge</a> in the course of their migration to MongoDB. See the <a class="reference external" href="http://blog.pythonisito.com/2009/12/ming-01-released-python-library-for.html">introductory blog post</a> for more details.</dd> <dt>MongoEngine</dt> <dd><a class="reference external" href="http://mongoengine.org/">MongoEngine</a> 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 <a class="reference external" href="http://github.com/mongoengine/mongoengine">GitHub</a>; for more information, see the <a class="reference external" href="http://docs.mongoengine.org/en/latest/tutorial.html">tutorial</a>.</dd> <dt>MotorEngine</dt> <dd><a class="reference external" href="https://motorengine.readthedocs.io/">MotorEngine</a> is a port of MongoEngine to Motor, for asynchronous access with Tornado. It implements the same modeling APIs to be data-portable, meaning that a model defined in MongoEngine can be read in MotorEngine. The source is <a class="reference external" href="http://github.com/heynemann/motorengine">available on GitHub</a>.</dd> <dt>uMongo</dt> <dd><a class="reference external" href="https://umongo.readthedocs.io/">uMongo</a> is a Python MongoDB ODM. Its inception comes from two needs: the lack of async ODM and the difficulty to do document (un)serialization with existing ODMs. Works with multiple drivers: PyMongo, TxMongo, motor_asyncio, and mongomock. The source <a class="reference external" href="https://github.com/Scille/umongo">is available on GitHub</a></dd> </dl> <div class="section" id="no-longer-maintained"> <h3>No longer maintained<a class="headerlink" href="#no-longer-maintained" title="Permalink to this headline">¶</a></h3> <dl class="docutils"> <dt>MongoKit</dt> <dd>The <a class="reference external" href="http://github.com/namlook/mongokit">MongoKit</a> framework is an ORM-like layer on top of PyMongo. There is also a MongoKit <a class="reference external" href="http://groups.google.com/group/mongokit">google group</a>.</dd> <dt>MongoAlchemy</dt> <dd><a class="reference external" href="http://mongoalchemy.org">MongoAlchemy</a> is another ORM-like layer on top of PyMongo. Its API is inspired by <a class="reference external" href="http://sqlalchemy.org">SQLAlchemy</a>. The code is available <a class="reference external" href="http://github.com/jeffjenkins/MongoAlchemy">on GitHub</a>; for more information, see <a class="reference external" href="http://mongoalchemy.org/tutorial.html">the tutorial</a>.</dd> <dt>Minimongo</dt> <dd><a class="reference external" href="http://pypi.python.org/pypi/minimongo">minimongo</a> is a lightweight, pythonic interface to MongoDB. It retains pymongo’s query and update API, and provides a number of additional features, including a simple document-oriented interface, connection pooling, index management, and collection & database naming helpers. The <a class="reference external" href="https://github.com/MiniMongo/minimongo">source is on GitHub</a>.</dd> <dt>Manga</dt> <dd><a class="reference external" href="http://pypi.python.org/pypi/manga">Manga</a> aims to be a simpler ORM-like layer on top of PyMongo. The syntax for defining schema is inspired by the Django ORM, but Pymongo’s query language is maintained. The source <a class="reference external" href="http://github.com/wladston/manga">is on GitHub</a>.</dd> </dl> </div> </div> <div class="section" id="framework-tools"> <h2>Framework Tools<a class="headerlink" href="#framework-tools" title="Permalink to this headline">¶</a></h2> <p>This section lists tools and adapters that have been designed to work with various Python frameworks and libraries.</p> <ul class="simple"> <li><a class="reference external" href="https://nesdis.github.io/djongo/">Djongo</a> is a connector for using Django with MongoDB as the database backend. Use the Django Admin GUI to add and modify documents in MongoDB. The <a class="reference external" href="https://github.com/nesdis/djongo">Djongo Source Code</a> is hosted on GitHub and the <a class="reference external" href="https://pypi.python.org/pypi/djongo">Djongo package</a> is on pypi.</li> <li><a class="reference external" href="https://django-mongodb-engine.readthedocs.io/en/latest/">Django MongoDB Engine</a> is a MongoDB database backend for Django that completely integrates with its ORM. For more information <a class="reference external" href="https://django-mongodb-engine.readthedocs.io/en/latest/tutorial.html">see the tutorial</a>.</li> <li><a class="reference external" href="http://github.com/vpulim/mango">mango</a> provides MongoDB backends for Django sessions and authentication (bypassing <code class="xref py py-mod docutils literal notranslate"><span class="pre">django.db</span></code> entirely).</li> <li><a class="reference external" href="https://github.com/MongoEngine/django-mongoengine">Django MongoEngine</a> is a MongoDB backend for Django, an <a class="reference external" href="https://github.com/MongoEngine/django-mongoengine/tree/master/example/tumblelog">example:</a>. For more information <a class="reference external" href="http://docs.mongoengine.org/en/latest/django.html">http://docs.mongoengine.org/en/latest/django.html</a></li> <li><a class="reference external" href="http://pypi.python.org/pypi/mongodb_beaker">mongodb_beaker</a> is a project to enable using MongoDB as a backend for <a class="reference external" href="http://beaker.groovie.org/">beaker’s</a> caching / session system. <a class="reference external" href="http://github.com/bwmcadams/mongodb_beaker">The source is on GitHub</a>.</li> <li><a class="reference external" href="https://github.com/log4mongo/log4mongo-python">Log4Mongo</a> is a flexible Python logging handler that can store logs in MongoDB using normal and capped collections.</li> <li><a class="reference external" href="http://github.com/puentesarrin/mongodb-log/">MongoLog</a> is a Python logging handler that stores logs in MongoDB using a capped collection.</li> <li><a class="reference external" href="http://bitbucket.org/percious/c5t/">c5t</a> is a content-management system using TurboGears and MongoDB.</li> <li><a class="reference external" href="http://pypi.python.org/pypi/rod.recipe.mongodb/">rod.recipe.mongodb</a> is a ZC Buildout recipe for downloading and installing MongoDB.</li> <li><a class="reference external" href="http://code.google.com/p/repoze-what-plugins-mongodb/">repoze-what-plugins-mongodb</a> is a project working to support a plugin for using MongoDB as a backend for <code class="xref py py-mod docutils literal notranslate"><span class="pre">repoze.what</span></code>.</li> <li><a class="reference external" href="http://github.com/theorm/mongobox">mongobox</a> is a tool to run a sandboxed MongoDB instance from within a python app.</li> <li><a class="reference external" href="http://github.com/cobrateam/flask-mongoalchemy/">Flask-MongoAlchemy</a> Add Flask support for MongoDB using MongoAlchemy.</li> <li><a class="reference external" href="http://github.com/jarus/flask-mongokit/">Flask-MongoKit</a> Flask extension to better integrate MongoKit into Flask.</li> <li><a class="reference external" href="http://github.com/dcrosta/flask-pymongo/">Flask-PyMongo</a> Flask-PyMongo bridges Flask and PyMongo.</li> </ul> </div> <div class="section" id="alternative-drivers"> <h2>Alternative Drivers<a class="headerlink" href="#alternative-drivers" title="Permalink to this headline">¶</a></h2> <p>These are alternatives to PyMongo.</p> <ul class="simple"> <li><a class="reference external" href="https://github.com/mongodb/motor">Motor</a> is a full-featured, non-blocking MongoDB driver for Python Tornado applications.</li> <li><a class="reference external" href="https://github.com/twisted/txmongo">TxMongo</a> is an asynchronous Twisted Python driver for MongoDB.</li> <li><a class="reference external" href="https://github.com/mongomock/mongomock">MongoMock</a> is a small library to help testing Python code that interacts with MongoDB via Pymongo.</li> </ul> </div> </div> </div> </div> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> <h3><a href="index.html">Table of Contents</a></h3> <ul> <li><a class="reference internal" href="#">Tools</a><ul> <li><a class="reference internal" href="#orm-like-layers">ORM-like Layers</a><ul> <li><a class="reference internal" href="#no-longer-maintained">No longer maintained</a></li> </ul> </li> <li><a class="reference internal" href="#framework-tools">Framework Tools</a></li> <li><a class="reference internal" href="#alternative-drivers">Alternative Drivers</a></li> </ul> </li> </ul> <h4>Previous topic</h4> <p class="topless"><a href="api/gridfs/grid_file.html" title="previous chapter"><code class="docutils literal notranslate"><span class="pre">grid_file</span></code> – Tools for representing files stored in GridFS</a></p> <h4>Next topic</h4> <p class="topless"><a href="contributors.html" title="next chapter">Contributors</a></p> <div role="note" aria-label="source link"> <h3>This Page</h3> <ul class="this-page-menu"> <li><a href="_sources/tools.rst.txt" rel="nofollow">Show Source</a></li> </ul> </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> <div class="searchformwrapper"> <form class="search" action="search.html" method="get"> <input type="text" name="q" /> <input type="submit" value="Go" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> </div> </div> <div class="clearer"></div> </div> <div class="related" role="navigation" aria-label="related navigation"> <h3>Navigation</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="genindex.html" title="General Index" >index</a></li> <li class="right" > <a href="py-modindex.html" title="Python Module Index" >modules</a> |</li> <li class="right" > <a href="contributors.html" title="Contributors" >next</a> |</li> <li class="right" > <a href="api/gridfs/grid_file.html" title="grid_file – Tools for representing files stored in GridFS" >previous</a> |</li> <li class="nav-item nav-item-0"><a href="index.html">PyMongo 3.7.2 documentation</a> »</li> </ul> </div> <div class="footer" role="contentinfo"> © Copyright MongoDB, Inc. 2008-present. MongoDB, Mongo, and the leaf logo are registered trademarks of MongoDB, Inc. </div> </body> </html>