Python 3.x py2neo:从关系和所有传入的不带密码的关系中获取结束节点
我很难找到与节点有关系的节点。 我希望能够从选定节点中找到与选定节点具有关系的节点 下面是示例图的代码:Python 3.x py2neo:从关系和所有传入的不带密码的关系中获取结束节点,python-3.x,neo4j,py2neo,Python 3.x,Neo4j,Py2neo,我很难找到与节点有关系的节点。 我希望能够从选定节点中找到与选定节点具有关系的节点 下面是示例图的代码: from py2neo import Node, Relationship, Graph, NodeSelector, Path from py2neo.ogm import * graph = Graph(user = 'neo4j', password = 'neo4j') graph.delete_all() class Man(GraphObject): __primar
from py2neo import Node, Relationship, Graph, NodeSelector, Path
from py2neo.ogm import *
graph = Graph(user = 'neo4j', password = 'neo4j')
graph.delete_all()
class Man(GraphObject):
__primarykey__ = "name"
name = Property("name")
likes = RelatedTo("Woman", "LIKES")
class Woman(GraphObject):
__primarykey__ = "name"
name = Property("name")
likes = RelatedTo("Man", "LIKES")
new_man = Man()
new_man.name = "John"
graph.push(new_man)
new_woman = Woman()
new_woman.name = "Sarah"
new_woman.likes.add(Man.select(graph, primary_value="John").first())
graph.push(new_woman)
new_man = Man()
new_man.name = "Joe"
new_man.likes.add(Woman.select(graph, primary_value="Sarah").first())
graph.push(new_man)
我试图说出莎拉喜欢的人的名字:
sarah = Woman.select(graph, primary_value="Sarah").first()
sarah.likes._related_objects[0][0].name
# returns "John"
# or
list(sarah.__ogm__.related.values())[0]._related_objects[0][0].name
# returns "John"
在没有查看其他节点的情况下,我无法找到任何方法来获得喜欢Sarah的人的名字。这是可能的还是我在浪费时间?有没有更好的方法来做这些?
我是否被困在:
def get_who_likes_sarah():
names = []
for m in Man.select(graph):
try:
name = m.likes._related_objects[0][0].name
if name == "Sarah":
names.append(m.name)
except:
pass
return names
你应该这样做:
for rel in graph.match(start_node=sarah, rel_type="LIKES"):
names.append(rel.end_node()["name"])
你有办法解决这个问题吗?放弃了我所拥有的。我的代码最后是这样的
[m.name代表m中的Man.select(graph)代表w中的m.likes.\u相关的\u对象,如果w[0]。name==“Sarah”]