0

我已经将我复杂的密码简化为核心问题。

START focus=node(2), user=node(20) 
MATCH focus-[:USER_FEED_LIST*1..15]->pointer-[:POINTER]->item,
item-[l?:NOTICE_LINK]->link<-[lu?:POST_UPVOTE]-user
RETURN link, ID(item) as item_id, item, l, lu

基本上我想要实现的目标如下:

  1. 返回链表中的每一项
  2. 对于每个项目,如果它们存在,则返回llink如果不存在,则返回 null
  3. 如果link不为null,则返回lu并且user如果它们存在,或者如果不存在则返回null

我遇到的问题是3.查询的第三行实际上是说返回满足任一给定关系的任何链接

因此,例如,如果我的链表链接了 10 个项目,我需要查询始终返回 10 行(如果它们不存在llink则为null)。lu

4

1 回答 1

0

可能您想使用路径表达式而不是可选关系?这些路径表达式返回路径的集合。您可以使用提取/过滤器来提取其中的某些部分。

START focus=node(2), user=node(20) 
MATCH focus-[:USER_FEED_LIST*1..15]->pointer-[:POINTER]->item,
RETURN ID(item) as item_id, item, (item-[:NOTICE_LINK]->link<-[:POST_UPVOTE]-user) 
于 2013-08-09T01:37:49.807 回答