如何在保存到Neo4j数据库之前使用Object-Graph-Mapping在py2neo对象上创建标签

时间:2014-07-18 19:00:27

标签: python neo4j py2neo

我正在尝试使用标签保存节点,但我不能这样做。只有具有属性的节点才会保存在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)`

此处将使用iddispalyName属性创建节点,但不会使用标签创建。

1 个答案:

答案 0 :(得分:2)

OGM模块最初是在将标签/架构功能添加到Neo4j之前设计的。因此,它通常不知道标签和模式索引,而是使用遗留索引。确保您熟悉这两种索引之间的差异:

REST API接口不容易在一个请求中创建具有标签详细信息的节点,因此这不是一个容易做出的改变。我可能会在将来重新设计OGM模块以支持标签和模式索引,但对于您的应用程序,您可能希望查看Cypher。