工具

已经编写了许多工具来处理 PyMongo . 如果您知道或已经创建了一个从Python使用MongoDB的工具,请在这里列出。

注解

我们尽量保持这份名单的最新情况。因此,最近没有更新或似乎未维护的项目偶尔会从列表中删除或移到后面(以防止列表变得太可怕)。

如果一个项目被删除,仍在开发或正在使用中,请让我们知道或添加回来。

类ORM层

有些人发现他们更喜欢使用比PyMongo提供的功能更多的层。通常,模型和验证之类的东西是需要的。为此,不同的作者编写了几个不同的类似ORM的层。

我们建议新用户从直接使用PyMongo开始,如本文其余部分所述。许多人发现PyMongo的特性已经足够满足他们的需要。即使您最终决定使用其中一个层,直接与驱动程序一起工作的时间也会增加您对MongoDB实际工作原理的理解。

PyMODM公司

PyMODM 是一个基于PyMongo之上的类似ORM的框架。PyMODM由MongoDB,Inc.的工程师维护,并很快采用新的MongoDB特性。PyMODM是一个“核心”ODM,这意味着它提供了简单、可扩展的功能,其他库可以利用这些功能来瞄准Django这样的平台。同时,PyMODM功能强大,可以单独用于开发应用程序。完整的文档可在 readthedocs 除了 Gitter channel 讨论这个项目。

狐猴

Humongolus 是一个面向Python和MongoDB的轻量级ORM框架。这个名字来自MongoDB和 Homunculus (一个完整的人体模型的概念)。Humongolus允许您创建具有健壮验证的模型/模式。它尝试尽可能的python,并尽可能公开pymongo游标对象。代码可以下载 at GitHub . GitHub也提供教程和使用示例。

Ming (无情)是一个库,允许您在Python应用程序中的MongoDB数据库上强制实施模式。它是由 SourceForge 在他们迁移到MongoDB的过程中。见 introductory blog post 了解更多详细信息。

MongoEngine

MongoEngine 是PyMongo顶部的另一个类似ORM的层。它允许您使用受Django ORM启发的语法为文档和查询集合定义模式。代码可在 GitHub ;有关详细信息,请参阅 tutorial .

MotorEngine

MotorEngine 是MongoEngine到Motor的一个端口,用于与Tornado异步访问。它实现了相同的建模api以便于数据移植,这意味着MongoEngine中定义的模型可以在MotorEngine中读取。来源是 available on GitHub .

乌蒙果

uMongo 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 is available on GitHub

不再维护

MongoKit

这个 MongoKit 框架是一个类似ORM的层,位于PyMongo之上。还有一个MongoKit google group .

MongoAlchemy

MongoAlchemy 是PyMongo顶部的另一个类似ORM的层。其API的灵感来自 SQLAlchemy . 代码是可用的 on GitHub ;有关详细信息,请参阅 the tutorial .

米莫戈

minimongo 是MongoDB的轻量级python接口。它保留了pymongo的查询和更新API,并提供了许多附加特性,包括一个简单的面向文档的接口、连接池、索引管理以及集合和数据库命名助手。这个 source is on GitHub .

漫画

Manga 目标是在PyMongo之上创建一个更简单的类似ORM的层。定义模式的语法受Django-ORM的启发,但Pymongo的查询语言得到了维护。来源 is on GitHub .

框架工具

本节列出了为使用各种Python框架和库而设计的工具和适配器。

替代驾驶员

这些是PyMongo的替代品。

  • Motor 是一个用于Python Tornado应用程序的全功能、非阻塞MongoDB驱动程序。

  • TxMongo 是一个用于MongoDB的异步Twisted Python驱动程序。

  • MongoMock 是一个小库,用于帮助测试通过Pymongo与MongoDB交互的Python代码。