我正在尝试在节点之间创建多个关系,以表示两个给定节点之间的重要性。
例如,我想知道什么是'类型'阅读材料对乔来说是最重要的。
我想要一种方法将Joe节点与流派节点匹配,只要它们之间存在一些数字或更大的关系。
所以,如果我想要与3个或更多关系匹配,我应该得到一个带有 Joe 的图表 - >的奇幻
我知道在定义两个端点时我可以得到这个:
MATCH (p:PERSON {name:'Joe'})-[r]->(g: GENRE {name:'Fantasy'})
RETURN count(r)
我想要的是:
MATCH p = (p:PERSON {name:'Joe'})-[r]->()
WHERE *pair_relationship_count*(r) >= 3
RETURN p
答案 0 :(得分:0)
这是我的主张:
MATCH path = (p:PERSON {name:'Joe'})-[r]->()
WITH collect(path) as paths, collect(r) as pair_count
WITH paths WHERE size(pair_count) >= 3
UNWIND paths as path
RETURN path
但是,对于每个节点,在一个关系上与内部计数属性建立一个关系可能更有效。
答案 1 :(得分:0)
首先,我认为您可以使用Cloudfront子句实现目标:
build:options:styles
但是每次阅读都会使用一种关系"事件"似乎是一个糟糕的方法。也许你应该在关系中使用一个整数属性,然后为每个" read"增加这个属性。这样您就可以执行以下查询:
MATCH path = (:PERSON {name:'Joe'})-[r]->(:GENRE {name:'Fantasy'})
WITH path, count(r) as count
WHERE count > 3
RETURN path
答案 2 :(得分:0)
获取“Joe”的所有READS
路径的集合,其中涉及他已阅读至少3次的每种类型:
MATCH p = (:PERSON {name:'Joe'})-[:READS]->(genre)
WITH genre, COLLECT(p) AS paths
WHERE SIZE(paths) >= 3
RETURN genre, paths;