微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Cypher查询以获取远程节点之间的路径

如何解决Cypher查询以获取远程节点之间的路径

我对 neo4j/cypher 很陌生,我需要您的帮助来进行查询

通过这个密码语句:Match p=(a:Value_Node {katalog_name:"id"})-[r:RELATED_TO_*]->(b:Value_Node {katalog_name:"Gewicht"}) return p 我得到了下面的图片

但我只想查询一个 value 的路径,该路径也在关系 id_nr属性 (RELATED_TO_) 中给出。所以我正在寻找从起始节点 (a:Value_Node {katalog_name:"id"}) 到结束节点 (b:Value_Node {katalog_name:"Gewicht"}一个 id 的路径。 通过此查询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 类型不匹配:预期的地图、节点、关系、点、持续时间、日期、时间、本地时间、本地日期时间或日期时间但为列表(第 1 行,第 117 列(偏移量:116)) "匹配 p=(a:Value_Node {katalog_name:"id"})-[r:RELATED_TO_*]->(b:Value_Node {katalog_name:"Gewicht"}) WHERE (a.value=r.id_nr) 返回 p" `

enter image description here

任何帮助都是有用的! 非常感谢!

解决方法

当您查找任何长度的所有关系 (r:RELATED_TO_*) 时,r 的值是从名为“id”的 value_node 到名为“Gewicht”的 value_node 的所有关系的列表。因此你应该迭代这个列表并检查 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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。