我已将我的复杂密码简化为核心问题。
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
基本上我想要实现的目标如下:
l
和link
,否则返回null link
不为空,则返回lu
和user
(如果存在),如果不是,则返回我遇到的问题是3.
因为查询的第三行实际上是在说返回任何满足给定关系的链接。
例如,如果我的链接列表链接了10个项目,我需要查询始终返回10行(l
,link
和lu
如果它们不存在则为空)。
答案 0 :(得分: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)