如何在保存到Neo4j数据库前为py2neo对象创建标签和对象图映射
我想在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)`
在这里,节点将会创建带有id
和displayName
属性,但没有标签。
1 个回答
2
OGM模块最初设计的时候,Neo4j还没有标签和模式功能。因此,它对标签和模式索引并不了解,反而使用了旧的索引方式。在这两种索引之间的区别,你最好先了解一下:
- http://docs.neo4j.org/chunked/stable/rest-api-schema-indexes.html
- http://docs.neo4j.org/chunked/stable/rest-api-indexes.html
REST API接口在一次请求中创建带有标签的节点并不是很方便,所以这不是一个容易改变的事情。我可能会在未来重新设计OGM模块,以支持标签和模式索引,但对于你的应用来说,你可能更想看看Cypher。