我有一个来自根节点的链表设置,它链接了不同的项目类型。要检索说前 10 个项目(可能存在关系),我正在执行以下操作:
START user=node(1)
MATCH user-[:LIST*1..10]->item
WITH item
MATCH author-[a?:AUTHOR]->item
RETURN item, a, author
这工作正常并返回所需的项目,但是有一些作者属性我不想返回给客户端。所以通常我只会RETURN
想要的属性,例如。RETURN author.name, author.location
,但如果该项目没有作者,这将不起作用。我可以?
在属性上使用,但是我最终可能会为每个项目得到很多空属性。
然后我找到了该CASE
语句,它几乎适用于我的用例。问题是如果可能的话,我希望能够返回多个属性THEN
。例如:
RETURN labels(item) as type,
CASE HEAD(type)
WHEN "Post" THEN (item.title, item.text, author)
WHEN "Message" THEN (item.subject, item.content)
END as item
上面的WHEN
行将返回一个语法错误,因为您只能在 THEN 之后放置一个值。有没有办法像上面那样将结果组合成一个对象?