对neo4j电影数据集的密码查询将返回822行
MATCH (a:Actor)-[:ACTED_IN]->(m:Movie)
WHERE m.year = 2000
AND a.born IS NOT NULL
RETURN DISTINCT a.name AS Actor, a.born AS Born
order by a.born
我使用下面的模式理解修改了查询,它返回了15443行,但是它们都是空数组。
MATCH (a:Actor)
with a, [ (a where a.born is not null)-[:ACTED_IN]->(m:Movie where m.year = 2000) | a.name ] as Actors
return Actors
我的意图是返回一个参与者列表,就像第一个查询一样。第二个查询中出了什么问题?
2条答案
按热度按时间g6baxovj1#
您的语法不正确。虽然这不是错误,但where子句应位于路径()-[]-()where〈〉的末尾。
那么大多数行都是空的,因为您没有在第一条语句中过滤Actor,所以即使结果为空,您的解析也会返回一行。您可以添加一个检查来检查集合中是否有行。
顺便说一句,原始查询已经很高效了,既然理解已经很快了,为什么还要使用它呢?
yv5phkfx2#
这可能就是您想要的: