大家好,我一直在使用neo4j和树数据,到目前为止,它的效果非常好。但是,我似乎找不到关于模式匹配通常如何工作的大量文档,因此我可以验证我正在进行的查询是否具有预测结果。
我有一个节点为1,2,3,4的树,其中2是1的子节点,3 + 4都是2的子节点。有1到2,2到3和2到4的有向边如果我执行以下Cypher查询,我是否总能获得返回节点x的最新共同祖先?
START a = node(3),b = node(4)
MATCH x- [*] - > a,x- [*] - > b
返回x;
此查询返回x的节点2,但我怎样才能确保自己永远不会返回1?
答案 0 :(得分:3)
您可以执行以下操作:
start a=node(3), b=node(4)
match pa=x-[*]->a, pb=x-[*]->b
return x
order by length(pa) + length(pb)
limit 1