<{3}}
要匹配多种类型中的一种,您可以通过将它们与管道符号
链接在一起来指定|
但举例说明使用的分隔符实际上是|:
,而不只是|
MATCH (wallstreet { title:'Wall Street' })<-[:ACTED_IN|:DIRECTED]-(person) RETURN person
在我的本地Neo4j浏览器中进行试验,似乎两个分隔符(|
和|:
)的行为相同;即查询
MATCH (wallstreet { title:'Wall Street' })<-[:ACTED_IN|DIRECTED]-(person)
RETURN person
似乎与Neo4j文档中的那个相同,至少在我的数据集上。但这引发了为什么Neo4j会实现两个相似的语法来完成同样的事情的问题。
上面两种语法的行为实际上是否相同,或者它们之间是否存在细微差别,而这些差异并没有显示在我的数据集上?无论答案是什么,它是否记录在任何地方?如果它们之间没有区别,那么Cypher支持这两种语法的理由是什么?
答案 0 :(得分:0)
AFAIK - 没有差异。
理性 - 向后兼容。
随着时间的推移,Cypher语言已经发展。 如果我没记错的话,有~3种Cypher语言的实现。
因此,为了允许用户迁移到新的Neo4j版本而不重写所有查询,Cypher保留了旧的语法支持。
例如,在过去(&lt; 3.0.0)中,您可以使用“裸节点”语法:
node-[rel]-otherNode
一般建议 - 请勿使用已弃用的语法。 如果文档中没有明确提到语法 - 可以将其视为已弃用。