关于Cypher中路径语法的基本问题

时间:2016-04-20 20:13:43

标签: neo4j cypher

我对此Cypher查询的语法有疑问:

MATCH (tom:Person {name: "Tom Hanks"})-[:ACTED_IN]->(tomHanksMovies)
RETURN tom, tomHanksMovies

我发誓我见过一些有两个破折号的路径,如--[:ACTED_IN]。两个和一个破折号有什么区别?

MATCH模式中的关系为:[:ACTED_IN]。我认为可以安全地说密钥丢失了,因为不需要标识符。

通过扩展,那么为什么不需要(tomHanksMovies)来明确显示 基本上只是一个标识符,如(tomHanksMovies:)?或者它不是标识符?我也把它称为变量。什么是正确的术语?

1 个答案:

答案 0 :(得分:3)

您会看到这样的Cypher模式:(a)-->(b),但绝不会(a)--[:ACTED_IN]->(b),因为后者不合法。 --语法只表示存在关系,但关系类型无关紧要(并且您不需要使用任何关系属性)。

您指定标识符作为节点(之后的第一个字符串或关系的[,只要该字符串不以:或{{1开头字符。在{em>节点标签或关系类型之前使用{字符。 :{字符用于包含属性名称/值对。

在neo4j文档中以这种方式引用},因此这是首选名称。但是,人们通常也会使用identifier