9

Neo4j (Postgres と一緒に) を使用して Django アプリを作成しています。この Django 統合を見つけました。この Django 統合はneo4djangoと呼ばれ、neo4restclient のみを使用できるかどうか疑問に思っていました。neo4-rest-client のみを使用すると、柔軟性が高まりますか? Neo4Django でモデルを作成していたとき、グラフ db とリレーショナル db のモデリングに違いはないように見えました。何か不足していますか?

ありがとう!

4

1 に答える 1

11

neo4django を使用しなくても、neo4j-rest-client または py2neo を使用することができます。同様に、Django や REST クライアントなどを使用して、いつでも好きな他のデータベース ドライバーを使用できます。

何を失うの?モデル DSL、組み込みのクエリ (例: Person.objects.filter(name="Mohamed"))、組み込みのインデックス作成、およびその背後にある Lucene、Gremlin、および Cypher。ノードに任意のプロパティを設定するなど、いくつかのことははるかに簡単になりますが、Neo4j の仕組みについてさらに学ぶ必要があります。

また、neo4django で動作する Django が提供するショートカットの一部や、クエリセットで動作get_object_or_404()するクラスベースのビューの一部も失われます。

あなたは何を得ますか?DB に対する絶対的なパワーと、DB パフォーマンスの微調整が容易になります。neo4django は、Python 分野の従来の ORM ほど優れたライブラリではありませんが、パワーと提供された使いやすさのトレードオフは似ています。

つまり、この 2 つを連携させることができます。いつでも、neo4django から基礎となる REST クライアント ノードと関係にドロップダウンできます。model_instance.nodeモデルから基礎となる neo4j-rest-client ノード オブジェクトfrom neo4django.db import connectionを取得し、ラップされた neo4j-rest-clientを取得するために使用するだけですGraphDatabase

何か不足しているかどうかについて: neo4django は、強力な開発者インターフェース (Django ORM) を再利用するように作成されているため、Postgres のモデルを作成するのと同じように感じるはずです。その不思議な感覚については、以前にも少し書いたことがあります。問題の一部は、lib が新しいグラフに関心のある開発者が期待するグラフ用語 (トラバーサルやパターン マッチングなど) を強調しておらず、代わりに Django クエリ クロージングでこれらの手法をドレスアップしていることにあると思います。

私はあなたの考えを知りたいです、またはあなたが図書館にやってほしいことを知りたいです:)頑張ってください!

于 2013-02-14T21:49:06.877 に答える