我对 neo4j 中的命名约定很好奇。
我在他们的示例中注意到关系名称大写,例如
left-[r:KNOWS]->right
那是公约吗?Neo4j 在关系名称中是否区分大小写?索引名称和属性名称是否有其他命名约定?
我对 neo4j 中的命名约定很好奇。
我在他们的示例中注意到关系名称大写,例如
left-[r:KNOWS]->right
那是公约吗?Neo4j 在关系名称中是否区分大小写?索引名称和属性名称是否有其他命名约定?
那就是约定。我个人使用小写关系类型,是的,它区分大小写。带下划线。
通常,人们也使用下划线作为索引名称,它们通常是小写的,并且区分大小写。
另外,需要记住的一点是:如果您在创建时不指定方向,则默认为左<--右。对我来说不直观,但现在我总是指定方向。
对于属性,我认为大多数人使用 JSON 样式约定:http: //google-styleguide.googlecode.com/svn/trunk/jsoncstyleguide.xml#Key_Names_in_JSON_Maps
我也看到了属性的下划线,所以我猜它是两种方式。只要保持一致!
是的,关系名称的约定是将它们全部大写。Neo4j 中的所有名称都区分大小写(标签、关系、属性……)
请记住,这是一个约定,而不是要求。任何项目中最重要的部分是一致性。使用编码风格并始终坚持下去!
Neo4j 命名约定:
密码示例:
CREATE (:Person {name:"Anne"})-[:MANAGES {start_date:20121112}]->(:WorkGroup {name:"Dev"});
或者:
CREATE (:Person {name:"Anne"})-[:MANAGES {startDate:20121112}]->(:WorkGroup {name:"Dev"});
参考:
使用LOWER()和UPPER()字符串函数可以更容易地将所有内容变为大写或小写
1-假设我有一个属性 name = 'name' 小写的节点,要找到它,您需要匹配确切的字符串
Query:
CYPHER 2.0
START n=node(*)
WHERE n.name= "name"
RETURN id(n)
id(n)
5
Query took 3 ms and returned 1 rows.
否则你将找不到它:
Query:
CYPHER 2.0
START n=node(*)
WHERE n.name= "Name"
RETURN id(n)
Query took 4 ms and returned no rows.
但是,我们可以使用字符串函数 LOWER() 来匹配它:
CYPHER 2.0
START n=node(*)
WHERE n.name= LOWER("Name")
RETURN id(n)
id(n)
5
Query took 4 ms and returned 1 rows.
2- 使用任意字符串大小写输入节点属性,例如:“NaMe”,以匹配:
START n=node(*)
WHERE LOWER(n.name)= "name"
RETURN id(n)
id(n)
8
Query took 5 ms and returned 1 rows.