2012-05-03 22 views
7

NoSQLストアが必要なDjangoプロジェクトで作業していますが、私はMongoに解決したと思います。私はMongoとDjangoについて話している多くの話題を見てきましたが、Django-nonrelについて言及したものは何もありません。なぜそれが失格になるのか分かりませんが、私はそれらの経験はありません。Django-nonrel対Django-mongodb対Mongokit対pymongoネイティブ

理想的には、単純なもの、ユーザーの認証、グループなどのSQLストアを保存し、大きなデータにMongoを使用したいと考えています。

Django-ORMスタイルで私のMongo格納オブジェクトをクラスとして持っていたいので、同様の「感じ」を持つことができますが、それは重要ではありません。

最後に、上記のいずれかを使用して、Djangoのマルチデータベースサポートを何かに使用できますか、またはDjango ORMからのすべてのmongoクエリが効果的に「帯域外」ですか?

重要であるかもしれない他の要素がある場合は、私を手がかりにしてください。この分野ではほとんど分かりません。

+3

はい、それはジャンゴとのMongoDBで作業することが可能である、私は自分自身その数年前に行った上で正常に動作します。私はDjango-nonrelを試していませんが、単純なものにSQLを使用したい場合は、元のDjangoに固執する必要があります。あなたはDjangoがMongoバックエンドを持っていないことを今すぐ知っておくべきですが、あなたがDjango ORMを維持したいなら、あなたは本当に[mongoengine](http://mongoengine.org/)を試してみるべきです。 –

+1

私はmongoengineのための推薦を秒です。 – Justin

答えて

5

Django-nonrelはMongoDBのDjangoに行く方法です。 django-mongodb.orgがありますが、これはちょうどDjango-nonrelの上に構築されています。 django-nonrelメーリングリストではかなりmongodb活動が行われています。

あなたのmongoクラスをDjango ORMオブジェクトとして保存するのは問題ありません。

私はSQLと一緒にマルチデータベースのサポートを試していません。私は多くの人がそれを好きに使っているのを見ていないし、おそらくそれがうまくいかないと思う。 django-nonrelを公式にDjango 1.4に移行する作業がいくつかありますが、それは完了した後に動作すると思われます。

authにdjango-nonrelを使用しても問題ありません。主な問題は多対多の関係です。認証モジュールは、ユーザーごとのオブジェクトのアクセス許可ごとにそれを使用します。これは動作しません。あなたがそれを必要としないなら、おそらくSQLを全く使わずに逃げることができます。

+0

私はDjango-nonrelを手紙のさまざまな文書ソースに従っても動作させることができませんでした。それは私がDjangoプロジェクトを持っているという点で、主にそこにあります。syncdbを動作させることはほとんどできますが、私が得たベストはObjectIDを扱ういくつかのエラーです。 。つまり、私はmongoengineを使用してしまいました。設定で接続を指定したり、参照できる「Djangoのような」クラスオブジェクトを定義することができます。 あなたの答えは「うまくいかない」が、少なくとも試しに時間を割いてしまったので、何か価値があると思っているので、受け入れられる。 – bmelton

0

dragonxの回答に追加します。 django-nonrelの問題は、認証モジュールが動作しないことです。

$ lookup演算子を使用して、多対mamy結合を実行できます。 djongoはあなたのために自動的に行います。これはSQL構文をmongodb集約クエリに変換し、他のSQLドライバと同様にオブジェクトモデルを生成します。

認証モジュールはdjongo

関連する問題