如何将计数(变量)设置为节点的 属性
How to set a count(variable) as a property of a node
我目前正在尝试获取每个演员出演过的所有电影的数量(neo4j 示例电影数据库),然后将其设置为人物节点的 num_movies_acted
属性。
到目前为止,我能够获得所有演员的列表以及他们各自的电影数量(包括是否因为可选匹配而为 0)
这是我的:
MATCH (p:Person)
OPTIONAL MATCH (p)-[:ACTED_IN]->(m:Movie)
RETURN p.name as name, count(m) as num_movies_acted
然后如何将其设置到个人节点中?我知道我应该使用类似的东西:
SET p.num_movies_acted = count(m)
,但这没用。
Invalid use of aggregating function count(...) in this context (line 3, column 26 (offset: 84))
"SET p.num_movies_acted = count(m)"
编辑:这行得通吗?
MATCH (p:Person)
OPTIONAL MATCH (p)-[:ACTED_IN]->(m:Movie)
WITH p, count(m) as num_movies_acted
SET p.num_movies_acted = num_movies_acted
RETURN p
因为我首先将计数(m)“存储”到一个变量中
MATCH (p:Person) OPTIONAL MATCH (p)-[:ACTED_IN]->(m:Movie) RETURN
p.name as name, count(m) as num_movies_acted
此查询 returns 作为 num_movies_acted 的列表,当您尝试将其设置为单个节点的 属性 时,它无法工作。
EDIT: Would this work?
MATCH (p:Person) OPTIONAL MATCH (p)-[:ACTED_IN]->(m:Movie) WITH p,
count(m) as num_movies_acted SET p.num_movies_acted = num_movies_acted
RETURN p
是的,当您计算每个 Person 节点的 Movie 节点并设置 属性.
时,这会很好地工作
您也可以试试:
MATCH (p:Person)
OPTIONAL MATCH (p)-[r:ACTED_IN]->(m:Movie)
WITH p, count(r) as num_movies_acted
SET p.num_movies_acted = num_movies_acted
RETURN p
我目前正在尝试获取每个演员出演过的所有电影的数量(neo4j 示例电影数据库),然后将其设置为人物节点的 num_movies_acted
属性。
到目前为止,我能够获得所有演员的列表以及他们各自的电影数量(包括是否因为可选匹配而为 0)
这是我的:
MATCH (p:Person)
OPTIONAL MATCH (p)-[:ACTED_IN]->(m:Movie)
RETURN p.name as name, count(m) as num_movies_acted
然后如何将其设置到个人节点中?我知道我应该使用类似的东西:
SET p.num_movies_acted = count(m)
,但这没用。
Invalid use of aggregating function count(...) in this context (line 3, column 26 (offset: 84))
"SET p.num_movies_acted = count(m)"
编辑:这行得通吗?
MATCH (p:Person)
OPTIONAL MATCH (p)-[:ACTED_IN]->(m:Movie)
WITH p, count(m) as num_movies_acted
SET p.num_movies_acted = num_movies_acted
RETURN p
因为我首先将计数(m)“存储”到一个变量中
MATCH (p:Person) OPTIONAL MATCH (p)-[:ACTED_IN]->(m:Movie) RETURN p.name as name, count(m) as num_movies_acted
此查询 returns 作为 num_movies_acted 的列表,当您尝试将其设置为单个节点的 属性 时,它无法工作。
EDIT: Would this work?
MATCH (p:Person) OPTIONAL MATCH (p)-[:ACTED_IN]->(m:Movie) WITH p, count(m) as num_movies_acted SET p.num_movies_acted = num_movies_acted RETURN p
是的,当您计算每个 Person 节点的 Movie 节点并设置 属性.
时,这会很好地工作您也可以试试:
MATCH (p:Person)
OPTIONAL MATCH (p)-[r:ACTED_IN]->(m:Movie)
WITH p, count(r) as num_movies_acted
SET p.num_movies_acted = num_movies_acted
RETURN p