正在做一个需要NoSQL商店的Django项目,我相信我已经选择了Mongo。我看过很多关于Mongo和Django的话题,但没有一个提到Django-nonrel,我不明白为什么它可能会被取消资格,但我对它们中的任何一个都没有经验。
理想情况下,我希望为简单的事情、用户身份验证、组等保留SQL存储,并使用Mongo存储更大的数据。
我也想让我的Mongo存储的对象作为类,以Django-ORM风格,这样我就可以有类似的“感觉”,但这并不重要。
最后,以上是否允许我使用Django的多数据库支持,或者我的所有mongo查询实际上都是Django ORM的“带外”?
如果我遗漏了任何其他可能很重要的因素,请随时给我提示。我对这个领域知之甚少。
发布于 2012-05-03 04:32:17
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。
发布于 2017-08-17 17:51:00
添加到dragonx答案上。django-nonrel的问题是auth模块无法工作。
您可以使用$lookup运算符来执行多对多连接。djongo会自动为您执行此操作。它将SQL语法转换为mongodb聚合查询并填充对象模型,就像其他SQL驱动程序一样。
auth模块在djongo上运行良好。
https://stackoverflow.com/questions/10424562
复制