假设我在neo4j中存储了以下关系。
A->B,A->D,C->B,C->E
这里A,C具有相同的标签节点,B,E也具有相同的标签节点。 什么是密码查询来计算A和C有多少个节点? 基于我想要建立A和C之间的关系。我想在它们之间添加一个关系等级并给它一些值0.5,因为1节点常见。该查询会是什么样的?
答案 0 :(得分:0)
要返回 A 和 C 之间的公共节点数,请匹配的模式 A 在一个 C 另一个与中间节点。然后计算中间节点的出现次数。
match (:TypeOne {name: 'A'})--(common)--(:TypeOne {name: 'C'})
return count(common)
如果您想在匹配后直接在 A 和 C 之间建立关系,那么将merge
或create
与 A 和 C 节点一起使用。并使用set
为新创建的关系添加值。
这样的事情应该满足你的要求。
match (a:TypeOne {name: 'A'})--(common)--(c:TypeOne {name: 'C'})
with a, c, count(common) as in_common
merge (a)-[rel:COMMON_WITH]->(c)
set rel.value = in_common * 0.5
return *