8

在一个需要 NoSQL 存储的 Django 项目上工作,我相信我已经选择了 Mongo。我见过很多谈论 Mongo 和 Django 的话题,但没有一个提到 Django-nonrel,我不明白为什么它可能会被取消资格,但我对其中任何一个都没有经验。

理想情况下,我想为简单的事情、用户身份验证、组等保留 SQL 存储,并将 Mongo 用于更大的数据。

我还希望将 Mongo 存储的对象作为类,采用 Django-ORM 样式,以便我可以有类似的“感觉”,但这并不重要。

最后,以上任何一项是否允许我使用 Django 的多数据库支持来支持任何事情,或者我的所有 mongo 查询是否都有效地从 Django ORM“带外”?

如果我遗漏了任何其他可能很重要的因素,请随时提示我。我在这个领域知之甚少。

4

2 回答 2

5

Django-nonrel 是在 MongoDB 上使用 Django 的方式。有 django-mongodb.org,但它只是建立在 Django-nonrel 之上。django-nonrel 邮件列表上有相当多的 mongodb 活动。

将您的 mongo 类存储为 Django ORM 对象可以正常工作,这就是重点。

我还没有尝试将多数据库支持与 SQL 一起使用。我还没有看到很多人这样使用它,我怀疑它很可能不起作用。将 django-nonrel 正式作为 Django 1.4 的一部分有一些工作,我怀疑它会在完成后工作。

使用 django-nonrel 进行身份验证工作正常。主要问题是多对多关系。auth 模块将其用于每个用户对象的权限——这是行不通的。如果您不需要它,您可能根本不使用 SQL 就可以逃脱。

于 2012-05-03T04:32:17.120 回答
0

添加到dragonx答案。django-nonrel 的问题是 auth 模块不起作用。

您可以使用 $lookup 运算符执行多对母连接。djongo会自动为你做。它将 SQL 语法转换为 mongodb 聚合查询并填充对象模型,就像其他 SQL 驱动程序一样。

auth 模块在 djongo 上运行良好

于 2017-08-17T17:51:00.210 回答