Django-nonrel vs Django-mongodb vs Mongokit vs pymongo native

时间:2012-05-03 03:07:08

标签: django mongodb pymongo django-nonrel mongokit

处理需要NoSQL商店的Django项目,我相信我已经选择了Mongo。我看过很多关于Mongo和Django的话题,但是没有人提到Django-nonrel,我不明白为什么它可能被取消资格,但我没有任何经验。

理想情况下,我想为简单的东西,用户身份验证,群组等保留SQL存储,并使用Mongo来获取更大的数据。

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

最后,上面的任何一个允许我使用Django的多数据库支持任何东西,或者我的mongo查询是否有效地从Django ORM“带外”?

如果还有其他因素我可能很重要,请随时提醒我。我对这个领域知之甚少。

2 个答案:

答案 0 :(得分: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的情况下逃脱。

答案 1 :(得分:0)

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

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

auth模块在djongo

上正常工作