2012-05-03 11 views
7

NoSQL 저장소가 필요한 Django 프로젝트에서 작업 중이며 Mongo에 정착했다고 생각합니다. 나는 Mongo와 Django에 관해서 이야기하는 많은 주제들을 보았지만 Django-nonrel에 대해서는 언급하지 않았고, 왜 그것이 실격 당했을 지 모르겠다. 그러나 나는 그것들에 대한 경험이 없다.Django-nonrel 대 Django-mongodb 대 Mongokit 대 pymongo native

이상적으로는 간단한 것들, 사용자 인증, 그룹 등을 위해 SQL 저장소를 보존하고 더 큰 데이터를 위해 Mongo를 사용하고 싶습니다.

Django-ORM 스타일로 Mongo에 저장된 오브젝트를 클래스로 사용하여 비슷한 '느낌'을 가질 수 있지만 중요한 것은 아닙니다.

마지막으로, 위의 항목 중 하나라도 장고의 다중 데이터베이스 지원을 사용할 수 있습니까? 아니면 내 몽고 쿼리가 장고 ORM에서 '대역 외'쿼리입니까?

중요한 요소 일 수있는 다른 요소가있는 경우 나에게 실마리를주십시오.이 분야에서는 거의 알지 못합니다.

+3

네, 장고와 MongoDB를 작동 할 수 있으며, 나 자신이 몇 년 전에했던에 잘 작동합니다. 나는 Django-nonrel을 시도하지 않았지만 간단한 것을 SQL로 사용하고자한다면 원래 Django를 고수해야한다. 이제는 장고에 몽고 백엔드가 없다는 것을 알아야하지만 장고 ORM을 유지하려면 정말로 [몽고 엔진] (http://mongoengine.org/)을 사용해보십시오. –

+1

나는 몽고인에게 추천 한 두 번째. – Justin

답변

5

Django-nonrel은 MongoDB에서 Django를 사용하는 방법입니다. django-mongodb.org가 있습니다. 그러나 이것은 Django-nonrel 위에 구축 된 것입니다. django-nonrel 메일 링리스트에는 꽤 많은 mongodb 활동이 있습니다.

몽고 클래스를 Django ORM 개체로 저장하는 것이 좋습니다. 그게 전부입니다.

SQL과 함께 다중 데이터베이스 지원을 사용하려하지 않았습니다. 나는 많은 사람들이 그것을 그렇게 사용하는 것을 보지 못했고, 나는 그것이 가장 효과적이지 않을 것이라고 생각한다. django-nonrel을 공식적으로 Django 1.4의 일부로 옮기는 작업이 있습니다. 작업이 완료되면 작동 할 것입니다.

인증을 위해 django-nonrel을 사용하면 정상적으로 작동합니다. 주된 문제는 다 대 다 관계입니다. 인증 모듈은 사용자 별 개체 권한별로 사용합니다. 작동하지 않습니다. 필요하지 않으면 SQL을 전혀 사용하지 않고 빠져 나갈 수 있습니다.

+0

Django-nonrel이 다양한 문서 소스를 따라 가면서 작동하지 못했습니다. '대부분'거기에 장고 프로젝트가 있고, syncdb를 거의 작동시킬 수 있지만, 내가 얻은 최선은 실패하기 전에 시작하는 것입니다 ... 쓰레기, ObjectID를 다루는 일부 오류 . 간단히 말해, mongoengine을 사용하여 결국 설정에서 연결을 지정하고 참조 할 수있는 장고와 같은 클래스 개체를 정의 할 수있게되었습니다. 당신의 대답은 '효과가 없었습니다.'그러나 적어도 시도하기 위해 시간을 투자 했으므로, 나는 그 것이 가치가 있다고 생각합니다. 그래서 받아 들여집니다. – bmelton

0

용의 답변에 추가. django-nonrel의 문제는 auth 모듈이 작동하지 않는다는 것입니다.

$ lookup 연산자를 사용하여 many-to-mamy 조인을 수행 할 수 있습니다. djongo이 자동으로 실행됩니다. SQL 구문을 mongodb 집계 쿼리로 변환하고 다른 SQL 드라이버와 마찬가지로 개체 모델을 채 웁니다.

정식 모듈은 djongo