带有图形数据库的ORM,如Python中的Neo4j

2024-05-21 00:34:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道是否有一个解决方案(或需要)一个ORM与图形数据库(f.e.Neo4j)。我正在跟踪实体(包括这些实体的附加属性)的关系(A与B相关,B与A通过C等相关,从而构建一个大型图),并需要将它们存储在DB中,我认为一个图数据库将完全适合此任务。

现在,对于类似sql的DBs,我使用sqlalchemyśORM来存储对象,特别是因为我可以从db中检索对象并以pythonic风格(使用它们的方法等)处理它们。

是否有针对Neo4j或其他Graph DB的对象映射解决方案,以便我可以在Graph DB中存储和检索python对象,并方便地使用它们?

或者编写一些函数或适配器,比如python sqlite文档(http://docs.python.org/library/sqlite3.html#让对象自行调整)来检索和存储对象?


Tags: 对象实体数据库图形dbsql属性sqlalchemy
3条回答

也许你可以看看Bulbflow,它允许在Django、Flask或Pyramid中创建模型。然而,它在REST client而不是Neo4j提供的python-binding上工作,所以它可能没有本地绑定快。

无耻的插头。。。还有我自己的ORM,您可能还想签出:https://github.com/robinedwards/neomodel

它建立在py2neo之上,在hood下使用cypher和rest API调用,即不依赖gremlin。

基于数据库的REST接口,Python现在有两种选择。

正如我在@Peter提供的链接中提到的,我们正在研究neo4django,它更新了旧的Neo4j/Django集成。如果您需要复杂的查询,并且需要一个也能管理节点索引的ORM,或者您已经在使用Django,那么这是一个不错的选择。它的工作原理与本地Django ORM非常相似。在PyPiGitHub上找到它。

还有一个更通用的解决方案称为Bulbflow,它应该与蓝图支持的任何图形数据库一起工作。我没有使用过它,但从我所看到的领域建模的角度来看,Bulbflow已经有了工作关系模型,例如,我们仍在研究-但不太支持复杂的查询(就像我们使用Django querysets+索引一样)。它还可以让你更接近图表。

相关问题 更多 >