ORM与Graph-Databases如Python中的Neo4j

dor*_*vak 17 python orm neo4j graph-databases bulbs

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

现在,对于类似sql的数据库,我使用sqlalchemyśORM来存储我的对象,特别是因为我可以从数据库中检索对象并以pythonic样式使用它们(使用它们的方法等).

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

或者你会编写一些函数或适配器,如python sqlite文档(http://docs.python.org/library/sqlite3.html#letting-your-object-adapt-itself)来检索和存储对象?

小智 10

无耻插头......也有我自己的ORM,你可能还需要签:https://github.com/robinedwards/neomodel

它是建立在py2neo的顶部,使用暗号和引擎盖下休息API调用,即在小鬼没有依赖性.


Mat*_*ngo 7

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

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

还有一个更通用的解决方案叫做Bulbflow,它可以与Blueprints支持的任何图形数据库一起使用.我没有使用它,但从我所看到的它专注于域建模 - Bulbflow已经有工作关系模型,例如,我们仍在努力 - 但不太支持复杂的查询(就像我们做的那样)使用Django查询集+索引使用).它还可以让您更接近图表.


Jav*_*osa 7

也许你可以看看Bulbflow,它允许在Django,Flask或Pyramid中创建模型.但是,它可以在REST客户端上运行,而不是由Neo4j提供的python绑定,所以它可能没有原生绑定那么快.