密码查询以获取远距离节点之间的路径
Cypher query to get path between distant nodes
我是 neo4j/cypher 的新手,我需要您的帮助。
有了这个密码语句:Match p=(a:Value_Node {katalog_name:"id"})-[r:RELATED_TO_*]->(b:Value_Node {katalog_name:"Gewicht"}) return p
我得到了下面的图片。
但我只想查询一个 value
的路径,该路径也在关系 RELATED_TO_
的属性 (id_nr
) 中给出。所以我在寻找一个id从Start-node (a:Value_Node {katalog_name:"id"})
到End-Node (b:Value_Node {katalog_name:"Gewicht"}
的路径。
通过此查询:Match p=(a:Value_Node {katalog_name:"id"})-[r:RELATED_TO_*]->(b:Value_Node {katalog_name:"Gewicht"}) WHERE (a.value = r.id_nr) return p
我得到错误消息:
Neo.ClientError.Statement.SyntaxError
Type mismatch: expected Map, Node, Relationship, Point, Duration, Date, Time, LocalTime, LocalDateTime or DateTime but was List (line 1, column 117 (offset: 116))
"Match p=(a:Value_Node {katalog_name:"id"})-[r:RELATED_TO_*]->(b:Value_Node {katalog_name:"Gewicht"}) WHERE (a.value=r.id_nr) return p"
`
任何帮助都是有用的!
非常感谢!
当您查找任意长度的所有关系 (r:RELATED_TO_*) 时,r 的值是从 value_node 名为“id”到 value_node 的所有关系的列表名称“Gewicht”。因此,您应该迭代此列表并检查 a.value 的值是否等于 r.
中的所有项目
Match p=(a:Value_Node {katalog_name:"id"})-[r:RELATED_TO_*]->(b:Value_Node {katalog_name:"Gewicht"})
WHERE ALL(rel in r WHERE rel.id_nr = a.value)
return p
我是 neo4j/cypher 的新手,我需要您的帮助。
有了这个密码语句:Match p=(a:Value_Node {katalog_name:"id"})-[r:RELATED_TO_*]->(b:Value_Node {katalog_name:"Gewicht"}) return p
我得到了下面的图片。
但我只想查询一个 value
的路径,该路径也在关系 RELATED_TO_
的属性 (id_nr
) 中给出。所以我在寻找一个id从Start-node (a:Value_Node {katalog_name:"id"})
到End-Node (b:Value_Node {katalog_name:"Gewicht"}
的路径。
通过此查询:Match p=(a:Value_Node {katalog_name:"id"})-[r:RELATED_TO_*]->(b:Value_Node {katalog_name:"Gewicht"}) WHERE (a.value = r.id_nr) return p
我得到错误消息:
Neo.ClientError.Statement.SyntaxError Type mismatch: expected Map, Node, Relationship, Point, Duration, Date, Time, LocalTime, LocalDateTime or DateTime but was List (line 1, column 117 (offset: 116)) "Match p=(a:Value_Node {katalog_name:"id"})-[r:RELATED_TO_*]->(b:Value_Node {katalog_name:"Gewicht"}) WHERE (a.value=r.id_nr) return p" `
任何帮助都是有用的! 非常感谢!
当您查找任意长度的所有关系 (r:RELATED_TO_*) 时,r 的值是从 value_node 名为“id”到 value_node 的所有关系的列表名称“Gewicht”。因此,您应该迭代此列表并检查 a.value 的值是否等于 r.
中的所有项目Match p=(a:Value_Node {katalog_name:"id"})-[r:RELATED_TO_*]->(b:Value_Node {katalog_name:"Gewicht"})
WHERE ALL(rel in r WHERE rel.id_nr = a.value)
return p