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 クエリ クロージングでこれらの手法をドレスアップしていることにあると思います。
私はあなたの考えを知りたいです、またはあなたが図書館にやってほしいことを知りたいです:)頑張ってください!