我正在尝试使用标签保存节点,但我不能这样做。只有具有属性的节点才会保存在neo4j db上。我很感激,如果有人可以帮助我在保存之前如何在对象上创建标签。我正在使用python和django以及neo4j db的py2neo对象图映射。这是代码。 (在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
和dispalyName
属性创建节点,但不会使用标签创建。
答案 0 :(得分:2)
OGM模块最初是在将标签/架构功能添加到Neo4j之前设计的。因此,它通常不知道标签和模式索引,而是使用遗留索引。确保您熟悉这两种索引之间的差异:
REST API接口不容易在一个请求中创建具有标签详细信息的节点,因此这不是一个容易做出的改变。我可能会在将来重新设计OGM模块以支持标签和模式索引,但对于您的应用程序,您可能希望查看Cypher。