如何在 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
我有一个简单的查询:给定一个节点 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