在 Neo4j 中,我有大约一千个标记为
Person
的节点,它们都与大约 200 个节点有出站连接,比方说,Place
。每个人都连接到许多地方。
我想向
Person
节点添加一个属性,该属性显示它与名称为“Mary”的 Person
节点的分离程度,无论箭头方向如何(否则人们将无法找到另一个人,因为箭头只是指向他们去的地方)。
我用过这段代码:
MATCH (mary:Person {name: 'Mary'})
MATCH (n:Person)
WHERE n <> mary
SET n.distance_to_mary = shortestPath((n)-[*]-(mary))
但是,运行后,我得到“No changes, no records”。
我做错了什么?我之前运行一个代码来设置这个数据集的邻居数量并且它工作得很好。谢谢大家。
属性不能有路径值,所以你的查询应该有一个错误。
您应该改用路径的LENGTH:
MATCH (mary:Person {name: 'Mary'}), (n:Person)
WHERE n <> mary
SET n.distance_to_mary = LENGTH(shortestPath((n)-[*]-(mary)))