如何在保存到Neo4j数据库前为py2neo对象创建标签和对象图映射

0 投票
1 回答
943 浏览
提问于 2025-04-18 13:53

我想在neo4j数据库中保存一个带标签的节点,但我做不到。现在只能保存带属性的节点。如果有人能帮我在保存之前如何给对象创建标签,我会非常感激。我正在使用Python和Django,并通过py2neo进行对象图映射来操作neo4j数据库。以下是我的代码。(在cypher中,可以通过CREATE (n:Person{ id : id#, displayName : 'My Name' })来实现,但我想使用py2neo的对象图映射。)

model.py文件中,我有

class Person(object):

    def __init__(self, id=None, displayName=None):
        self.id = id
        self.displayName = displayName

    def __str__(self):
        return self.displayName

在另一个.py文件中,我有

from py2neo import neo4j
from py2neo import ogm
graph_db = neo4j.GraphDatabaseService("http://localhost:7474/db/data/")`

def addPeople():
    store = ogm.Store(graph_db)
    worker = model.Person(1, "My Name")
    store.save_unique("People","ID",worker.id,worker)`

在这里,节点将会创建带有iddisplayName属性,但没有标签。

1 个回答

2

OGM模块最初设计的时候,Neo4j还没有标签和模式功能。因此,它对标签和模式索引并不了解,反而使用了旧的索引方式。在这两种索引之间的区别,你最好先了解一下:

REST API接口在一次请求中创建带有标签的节点并不是很方便,所以这不是一个容易改变的事情。我可能会在未来重新设计OGM模块,以支持标签和模式索引,但对于你的应用来说,你可能更想看看Cypher。

撰写回答