我对此Cypher查询的语法有疑问:
MATCH (tom:Person {name: "Tom Hanks"})-[:ACTED_IN]->(tomHanksMovies)
RETURN tom, tomHanksMovies
我发誓我见过一些有两个破折号的路径,如--[:ACTED_IN]
。两个和一个破折号有什么区别?
MATCH
模式中的关系为:[:ACTED_IN]
。我认为可以安全地说密钥丢失了,因为不需要标识符。
通过扩展,那么为什么不需要(tomHanksMovies)
来明确显示 基本上只是一个标识符,如(tomHanksMovies:)
?或者它不是标识符?我也把它称为变量。什么是正确的术语?
答案 0 :(得分:3)
您会看到这样的Cypher模式:(a)-->(b)
,但绝不会(a)--[:ACTED_IN]->(b)
,因为后者不合法。 --
语法只表示存在关系,但关系类型无关紧要(并且您不需要使用任何关系属性)。
您指定标识符作为节点(
之后的第一个字符串或关系的[
,只要该字符串不以:
或{{1开头字符。在{em>节点标签或关系类型之前使用{
字符。 :
和{
字符用于包含属性名称/值对。
在neo4j文档中以这种方式引用}
,因此这是首选名称。但是,人们通常也会使用identifier
。