我想知道是否有一个解决方案(或需要)与图形数据库的ORM (f.e.Neo4j)。我正在跟踪实体(包括这些实体的附加属性)的关系(A与B相关,B通过C等方式与A相关,因此构建了一个大图),并需要将它们存储在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)中那样编写一些函数或适配器来检索和存储对象?
发布于 2011-12-02 22:50:07
基于数据库的REST接口,目前在Python中有几种选择。
正如我在@Peter提供的链接中提到的,我们正在开发neo4django,它更新了旧的Neo4j/Django集成。如果您需要复杂的查询并希望使用ORM来管理节点索引,或者如果您已经在使用Django,那么Django是一个很好的选择。它的工作方式与原生Django ORM非常相似。在PyPi或GitHub上找到它。
还有一个更通用的解决方案,称为Bulbflow,它被认为可以与Blueprints支持的任何图形数据库一起工作。我还没有用过它,但据我所见,它专注于领域建模--例如,Bulbflow已经有了工作关系模型,我们仍在研究--但不太支持复杂的查询(就像我们对Django querysets + index的使用一样)。它还可以让你的工作更接近图表。
发布于 2012-10-31 01:23:33
无耻的插头..。还有一个我自己的ORM,您可能也想检查一下:https://github.com/robinedwards/neomodel
它构建在py2neo之上,在幕后使用cypher和rest API调用,即不依赖于gremlin。
发布于 2011-12-02 22:54:42
也许你可以看看Bulbflow,它可以用Django,Flask或者金字塔来创建模型。但是,它在REST client上工作,而不是在Neo4j提供的python-binding上工作,所以它可能没有本机绑定那么快。
https://stackoverflow.com/questions/8356626
复制相似问题