ORM与像Python中的Neo4j一样的图形数据库
我想知道有一个解决方案(或需要)带有Graph-Database(f.e.Neo4j)的ORM。我正在跟踪关系(A与B有关,它通过C等与A相关,因此构造一个大图)实体(包括这些实体的附加属性)并需要将它们存储在数据库中,并且我认为图表数据库将完美地适合这项任务。ORM与像Python中的Neo4j一样的图形数据库
现在,使用类似于sql的数据库,我使用sqlalchemyśORM来存储我的对象,特别是因为我可以从数据库中检索对象并以pythonic样式(使用它们的方法等)处理它们。
是否有任何Neo4j或其他Graph-DB的对象映射解决方案,以便我可以存储和检索python对象进出Graph-DB并轻松使用它们?
或者你会编写一些函数或适配器,如在python sqlite文档(http://docs.python.org/library/sqlite3.html#letting-your-object-adapt-itself)中检索和存储对象?
基于数据库的REST接口,Python中现在有几种选择。
正如我在@Peter提供的链接中提到的,我们正在研究neo4django,它将更新旧的Neo4j/Django集成。如果您需要复杂的查询并需要一个将管理节点索引的ORM,或者您已经在使用Django,那么这是一个不错的选择。它与本地Django ORM非常类似。在PyPi或GitHub上查找。
还有一种更通用的解决方案,称为Bulbflow,它应该可以与蓝图支持的任何图形数据库一起使用。我没有使用它,但是从我所看到的关注领域建模的例子来看 - 例如,Bulbflow已经有了工作关系模型,但我们仍在努力,但并不支持复杂的查询(就像我们一样使用Django查询集+索引使用)。它也可以让你更接近图表。
Bulbflow看起来相当不错,我会看看它。它是否受到Flask等的约束,还是你可以使用它“独立”?(我认为是这样)。 Neo4j Django看起来也不错,但我想要有一个不依赖plattform /框架或独立解决方案(可能会在稍后绑定到框架)。 – dorvak
从我的理解,Bulbflow可以单独使用。 @ versae的答案似乎同意。 因为我总是销售 - 尽管名称,neo4django它也有一些Django的代码依赖关系,但不需要你使用实际的框架:) –
答案是不相关的:neo4django和bulbflow被遗弃。最近的OGM(Object-Graph-Mapper)是neomodel,如果你使用的是Django,则是django-neomodel。 – Pawamoy
也许你可以看看,它允许在Django,Flask或Pyramid中创建模型。但是,它的工作原理是REST client,而不是由Neo4j提供的python-binding,所以它可能不如原生绑定那么快。
无耻插头......也有我自己的ORM,你可能还需要签:https://github.com/robinedwards/neomodel
它是建立在py2neo的顶部,使用暗号和引擎盖下休息API调用,即在小鬼没有依赖性。
注意:neomodel不是建立在py2neo之上,而是在官方的neo4j驱动程序上。 – Pawamoy
我认为这里有趣可能是http://stackoverflow.com/questions/5866635/neo4j-and-django-models? –