【问题标题】:ORM with Graph-Databases like Neo4j in PythonORM 与 Python 中的 Neo4j 等图形数据库
【发布时间】:2011-12-02 12:56:09
【问题描述】:

我想知道是否有解决方案(或需要)带有图形数据库(例如 Neo4j)的 ORM。我正在跟踪实体(包括这些实体的附加属性)的关系(A与B相关,B通过C等与A相关,因此构建了一个大图)并且需要将它们存储在数据库中,我认为图形数据库非常适合这项任务。

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

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

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

【问题讨论】:

标签: python orm neo4j graph-databases bulbs


【解决方案1】:

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

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

【讨论】:

  • 注意:neomodel 不再建立在 py2neo 之上,而是建立在官方的 neo4j-driver 之上。
【解决方案2】:

基于数据库的 REST 接口,目前 Python 有多种选择。

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

还有一个更通用的解决方案,称为Bulbflow,它应该适用于蓝图支持的任何图形数据库。我没有使用它,但据我所见,它专注于域建模——例如,Bulbflow 已经有工作关系模型,我们仍在研究它——但不太支持复杂的查询(正如我们所做的那样使用 Django 查询集 + 索引使用)。它还可以让您更接近图表。

【讨论】:

  • Bulbflow 看起来很不错,我会看看它。它是绑定到 Flask 等还是你可以“独立”使用它?(我想是的)。 Neo4j Django 看起来也不错,但我希望有一个独立于平台/框架或独立的解决方案(以后可以绑定到框架)。
  • 据我了解 Bulbflow 可以独立使用。 @versae 的回答似乎同意。而且因为我一直在销售——尽管有这个名字,neo4django 也可以——它对 Django 有一些代码依赖,但不需要你使用实际的框架:)
  • 答案不再相关:neo4django 和bulbflow 都被放弃了。更新的 OGM(Object-Graph-Mapper)是 neomodel,如果您使用 Django,则为 django-neomodel。
【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 2021-04-24
    • 2015-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多