Question

Je me demande wether il y a une solution (ou un besoin) d'un ORM avec Graph-Database (F.E. Neo4j). Je suis suivi des relations (A est lié à B qui est lié à A par C, etc., construisant ainsi un grand graphique) des entités (y compris des attributs supplémentaires pour ces entités) et la nécessité de les stocker dans une base de données, et je pense base de données graphique cadrerait parfaitement cette tâche.

Maintenant, avec sql comme DB, j'utiliser ORM sqlalchemys pour stocker mes objets, surtout à cause du fait que je peux récupérer des objets de la db et de travailler avec eux dans un style pythonique (utiliser leurs méthodes, etc.).

Y at-il une solution-mapping objet pour Neo4j ou autre graphique-DB, de sorte que je peux stocker et récupérer des objets python dans et à partir du graphique-DB et de travailler facilement avec eux?

Ou écrire des fonctions ou des adaptateurs comme dans la documentation SQLite python (http://docs.python.org/library/sqlite3.html#letting-your-object-adapt-itself) pour récupérer et stocker des objets?

Était-ce utile?

La solution

Il y a un choix couple en Python là-bas en ce moment, en fonction des interfaces REST de bases de données.

Comme je l'ai mentionné dans le lien @Peter fourni, nous travaillons sur neo4django, qui met à jour l'ancienne intégration Neo4j / Django. Il est un bon choix si vous avez besoin des requêtes complexes et que vous voulez un ORM qui va gérer l'indexation des nœuds comme bien ou si vous utilisez déjà Django. Il fonctionne de manière similaire à l'indigène Django ORM. Trouvez sur PyPI ou GitHub .

Il y a aussi une solution plus générale appelée Bulbflow qui est censé travailler avec une base de données graphique pris en charge par Blueprints . Je ne l'ai pas utilisé, mais de ce que je l'ai vu se concentre sur la modélisation de domaine - Bulbflow y a déjà des modèles de relations, par exemple, que nous ON- travaille encore, mais ne interrogation complexe de soutien pas grand-chose (comme nous le faisons avec Django QuerySets + utilisation d'index). Il vous permet également de travailler un peu plus près du graphique.

Autres conseils

Shameless plug ... il y a aussi ma propre ORM que vous pouvez également votre commande: https://github.com/robinedwards/ neomodel

Il est construit au-dessus de py2neo, en utilisant Cypher et les appels API reste sous le capot, i.e. aucune dépendance à l'égard Gremlin.

Peut-être que vous pourriez jeter un oeil sur Bulbflow , qui permet de créer des modèles de Django, Flask ou Pyramide . Cependant, il fonctionne sur un client REST au lieu de contraignant python fourni par Neo4j, donc peut-être ce n'est pas aussi vite que la liaison native est.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top