1

我正在为我的项目使用 Neomodel 和 Python。我定义了许多节点,并存储了有关它们之间关系的相关信息。但是我似乎无法找到一种机制来检索关系对象本身以使用属性 - 我只能按关系属性过滤以返回节点。

class MyRelationship(StructuredRel):
    source = StringProperty()
    
class Person(StructuredNode):
    uid=UniqueIdProperty()
    first_name = StringProperty()
    last_name = StringProperty()
    
    people = RelationshipTo('Person', "PERSON_RELATIONSHIP", model = MyRelationship) 

我在相同的两个节点之间有许多相同类型的关系 [PERSON_RELATIONSHIP],但它们的属性不同。我希望能够遍历它们并打印出 to 节点和属性。

person给定一个类型的对象Person

for p in person.people: 给了我 Person 对象

person.people.relationship(p).source总是给我第一次关系的价值

ATraversal似乎也给了我 Person 对象

似乎获得关系对象的唯一方法是 on .connect

有什么线索吗?谢谢。

4

1 回答 1

1

我只是偶然发现了同样的问题并设法解决了它,如下所示。但如果它是最高效的解决方案,我不喜欢。

如果Person变量中已经有一个节点对象person

for p in person.people:
    r = person.people.relationship(p)

或遍历所有Person节点:

for person in Person.nodes.all():
    for p in person.people:
        r = person.people.relationship(p)
于 2021-09-23T13:42:29.207 回答