如何在 Cypher 中设置传出节点?

How to set outgoing nodes in Cypher?

我有一个简单的查询:给定一个节点 A,计算节点 A 具有传出 link 的节点数,然后将该数字设置为 A 的 属性。但是我只是做不到。

尝试 1

MATCH (n)-->(m) 
SET n.out=count(m)
RETURN n.name,n.out

这会产生错误:

Invalid use of aggregating function count(...) in this context (line 2, column 11 (offset: 28))
"set n.out=count(m)"
           ^

尝试 2

MATCH (n)-->(m) 
WITH count(m) AS o 
SET n.out=o 
RETURN n.name,n.out

这会产生错误:

Variable `n` not defined (line 3, column 5 (offset: 43))
"SET n.out=o"
     ^

两次错误都在 SET 子句中。但是阅读 documentation for SET 我无法确定为什么会发生这些。

我数不过来 link 因为一对 n, m 可能有几种 link 类型。

您可以通过以下查询获得所需的结果:

MATCH (n)
WITH size((n)-->()) as out, n
SET n.out = out
RETURN n.name, n.out