http://console.neo4j.org/r/yx62bk
在上图中,查询
start n=node(7,8,9)
match n-[objectScore:score]->o-[:object_of_destination]->d<-[:destination_score]-n,
o-[:instance_of]->ot, o-[:date]->oDate, d-[:date]->dDate where ot.name='HOTEL'
return n, o, objectScore, d;
将o返回为null。
更改查询以删除关系标识符 - objectScore
start n=node(7,8,9)
match n-[:score]->o-[:object_of_destination]->d<-[:destination_score]-n,
o-[:instance_of]->ot, o-[:date]->oDate, d-[:date]->dDate where ot.name='HOTEL'
return n, o, objectScore, d;
并且输出正确地返回o节点。
对于我的情景,我需要他们两个。不确定怎么做?对此有任何建议。
答案 0 :(得分:0)
非常感谢报道!
编辑:我发现了问题。具有讽刺意味的是,一个简单的解决方法是引入可选关系。问题出在Cypher可以使用的一个匹配器中,并且通过将一个模式标记为可选,可以强制Cypher使用不同的匹配器。如果你想
所以,将你的MATCH改为:
match n-[objectScore:score]->o-[:object_of_destination]->d<-[:destination_score]-n,
o-[:instance_of]->ot,
o-[:date]->oDate,
d-[?:date]->dDate
正在进行真正的修复。