【发布时间】:2017-04-24 14:26:39
【问题描述】:
所以作为this question的并发症,我基本上想做
MATCH (n:TEST) OPTIONAL MATCH (n)-[r]->() RETURN DISTINCT n, r
我想将 n 和 r 作为一列返回,没有重复值。但是,运行
MATCH (n:TEST) OPTIONAL MATCH (n)-[r]->() UNWIND n+r AS x RETURN DISTINCT x
给出“类型不匹配:预期的列表但为关系(第 1 行,第 47 列)”错误。而这个查询
MATCH (n:TEST) RETURN DISTINCT n UNION MATCH ()-[n]->() RETURN DISTINCT n
将节点和关系放在同一列中,但第一次匹配的上下文在后半段丢失。
那么如何将所有匹配的节点和关系作为一个最小列表返回?
更新:
这是我正在使用的答案查询的最终修改版本
MATCH (n:TEST)
OPTIONAL MATCH (n)-[r]->()
RETURN n {.*, rels:collect(r {properties:properties(r), id:id(r), type:type(r), startNode:id(startNode(r)), endNode:id(endNode(r))})} as n
【问题讨论】: