我有一个密码,它返回由给定用户创建的项目列表(工作正常):
MATCH (author:User)-[:ITEM_LIST*1..10]->item
WHERE author.username='1'
RETURN item
不过,我现在想要的是返回创作项目的列表,但还要知道特定用户是否喜欢这些项目中的任何一个。我已经尝试了下面的密码,但它不起作用:
START user=node(1)
MATCH (author:User)-[:ITEM_LIST*1..10]->item<-[like?:LIKES]-user
WHERE author.username='1'
RETURN item, (like IS NOT NULL) as likes
我将上面的密码读作返回所有项目,以及项目和给定用户之间的任何喜欢(如果它们存在)。不幸的是?
,这对结果没有影响,而且看起来好像item<-[like?:LIKES]-user
是一个要求。
我需要做什么才能达到预期的效果?
编辑:
我意识到我可以通过使用WITH item
然后检查每个可选关系来做到这一点。这会导致任何性能问题吗?如果是这样,有没有更好的方法?