命名规则很少,节点标签、关系类型、属性名称和变量的命名都必须遵循一些规则,除非发生错误。
命名规则:
- 要命名节点标签、关系类型、属性名称,变量名称也应以字母开头。这也可能是非英文字符。如果需要数字字符来命名上面提到的任何内容,那么您可以使用反引号来转义非字母字符,例如`^n` 。
- 命名可以包含数字,但不能像1Geeks一样排在第一位。您可以将其用作Geeks1或Geek1s 。但是,如果你把一个数字在随后开始同样使用反引号,比如`1Geeks`是反引号将跳过1级其他字符的行为,因为它应该是。
- Neo4j 中的命名不能包含任何用于命名的特殊符号。但允许使用下划线,如果需要特殊符号,则使用反引号。
- 命名可以很长 65535 (2^16 – 1) 或 65534 它基本上取决于 Neo4j 的版本。
- Neo4j 中的命名区分大小写,例如:Geeks 、 :GEEKS和:geeks是三个不同的标签, g和G是不同的变量。
- 空白字符是可以接受的所有前导和尾随空白字符将被自动删除。像MATCH (a) RETURN a 等价于MATCH (a) RETURN a 。如果名称中需要空格,请使用反引号进行转义,例如“我的变量有空格” 。
作用域和命名空间规则:
- 所有节点标签、关系类型和属性名称都可以重用名称。以下查询?—?带有标签、类型和属性名称的 a?—? 有效:
CREATE (a:a {a: 'a'})-[r:a]?(b:a {a: 'a'}).
- 节点和关系的变量不得在同一查询范围内重复使用名称。以下查询无效,因为节点和关系都具有名称
a: CREATE (a)-[a]?(b)
推荐用于命名节点标签、关系类型、属性名称和变量:
- 节点标签:尝试使用 Camel 大小写,以大写字符开头,如下例所示。
:GeeksforGeeks rather than :geeksforgeeks
- 关系类型:尽量使用大写,可以使用下划线分隔单词
:Geeks_for_Geeks rather than :geeksForGeeks
参考: https : //neo4j.com/docs/cypher-manual/current/syntax/naming/