neo4j - Neo4j,Cypher 以节点之间不存在的关系返回结果
问题描述
我想表示一个人可能认识一个人的图表路径,如果他们有相同的朋友。当我运行这个查询时,我在表格模式下得到了我想要的结果。
MATCH (p1:Person)-[:IS_FRIEND_OF]->(any:Person)
MATCH (p2:Person)-[:IS_FRIEND_OF]->(any)
WHERE NOT p1 = p2
RETURN p1, p2
我的问题是我想将它们表示为图形,连接 person1 和 person2 的关系将其重命名为“ MAY_KNOWS ”
解决方案
您可以virtual relationships
在 APOC 中使用:
MATCH (n:Person)-[r:IS_FRIEND_OF]->(other)
MATCH (other)-[:IS_FRIEND_OF]->(candidate)
WHERE NOT (n)-[:IS_FRIEND_OF]->(candidate)
RETURN n, other, candidate, apoc.create.vRelationship(n, 'MAY_KNOW', {}, candidate)
参考:https ://neo4j-contrib.github.io/neo4j-apoc-procedures/#_virtual_nodes_rels
推荐阅读
- r - data.table:在 i 中使用 .SD
- arrays - 如何更新laravel中的主数组
- vba - 我可以对word中的整个文档使用收缩方法吗
- javascript - NodeJS:始终在文件夹中保留 30 个最新文件,删除其余文件?
- java - android spinner,如果某个项目选择了其他微调器,则从衍生微调器 1 中出现
- security - 具有 Domain 与 SameSite 严格的 cookie 之间的安全差异是什么?
- android - 我们可以在不使用模型的情况下为列表视图创建搜索过滤器吗?
- f# - 如何在 af# 构造函数中声明类型别名?
- c++ - C++中私有静态成员变量的继承
- c# - 如何正确使用 ContentTemplateSelector 和 ContentControl?