Groovy 使用Neo4django标记Neo4j数据库

Groovy 使用Neo4django标记Neo4j数据库,groovy,label,neo4django,Groovy,Label,Neo4django,这个问题与Neo4django的研究有关。我想使用Django web框架中的Neo4j graph DB创建多个图形。我使用的是Django 1.4.5、neo4j 1.9.2和neo4django 0.1.8 到目前为止,Neo4django不支持标签,但以上是我的核心目的,我希望能够从Neo4django创建标签。因此,我进入了源代码,并试图对其进行一些调整,看看是否可以添加此代码。据我所知,文件'db/models/properties.py'具有类BoundProperty(AttrR

这个问题与Neo4django的研究有关。我想使用Django web框架中的Neo4j graph DB创建多个图形。我使用的是Django 1.4.5、neo4j 1.9.2和neo4django 0.1.8

到目前为止,Neo4django不支持标签,但以上是我的核心目的,我希望能够从Neo4django创建标签。因此,我进入了源代码,并试图对其进行一些调整,看看是否可以添加此代码。据我所知,文件'db/models/properties.py'具有类BoundProperty(AttrRouter),它通过函数save调用gremlin脚本(实例、节点、节点是新的)。脚本如下:

script = '''
    node=g.v(nodeId);
    results = Neo4Django.updateNodeProperties(node, propMap);
    '''
该脚本从library.groovy调用update函数,所有函数看起来都很直观和漂亮。我试图添加这个函数来支持标记,但我没有groovy的经验。有人对如何进行有什么建议吗?任何帮助都将不胜感激。如果它能起作用,那将是neo4django的一大补充:)

谢谢你

一点背景:

您突出显示的Groovy代码是使用Neo4j Gremlin插件执行的。首先,它支持(例如
node=g.v(nodeId)
),这是在Groovy语言上实现的。Groovy本身是Java的动态超集,因此大多数有效的Java代码都将与通过
connection.gremlin(…)
发送的脚本一起使用。发送的每个脚本都应该定义一个
results
变量,该变量将返回给neo4django,即使它只是
null

无论如何,通过这种方式访问Neo4j是很方便的(尽管我听说会有人反对:(),因为您可以使用完整的

from neo4django.db import connection
connection.gremlin("""
node = g.v(nodeId)
label = DynamicLabel.label('Label_Name')
node.rawVertex.addLabel(label)
""", nodeId=node_id)
您可能还需要为
DynamicLabel
添加导入-我还没有运行此代码,因此我不确定。调试以这种方式编写的代码有点困难,因此请在Neo4j管理中自由使用Gremlin选项卡

如果你提出了一个可行的解决方案,我很乐意看到它(或者一篇解释性的博客文章!)——我相信它对其他用户会有帮助


注意-在Neo4j 2.0发布后不久,标签将得到适当的支持-它们将取代当前的图形类型结构。

您是否计划切换到Neo4j 2.0M03?1.9.2不支持标签。出于试验目的,我升级到Neo4j 2.0M03。希望当我们的产品准备好投入生产时,稳定的2.0版本将得到支持谢谢你的指点:)我刚刚发起了一项活动来资助下一个版本的库-标签在扩展目标列表中。过来看