我很好奇neo4j中的命名约定。什么是neo4j命名约定?
我在他们的例子中注意到关系名字大写,例如
left-[r:KNOWS]->right
这是公约吗? neo4j在关系名称中是否区分大小写?索引名称和属性名称是否有其他命名约定?
我很好奇neo4j中的命名约定。什么是neo4j命名约定?
我在他们的例子中注意到关系名字大写,例如
left-[r:KNOWS]->right
这是公约吗? neo4j在关系名称中是否区分大小写?索引名称和属性名称是否有其他命名约定?
这是约定。我个人使用小写关系类型,是的,它是区分大小写的。带下划线。
通常,人们使用下划线索引的名字为好,而且他们通常比较低的情况下,也区分大小写。
另外,要记住的东西:如果您在创建时未指定方向,则默认值为< - 正确。对我来说不直观,但现在我只是总是指定方向。
有关属性,我想大多数人使用JSON风格约定:http://google-styleguide.googlecode.com/svn/trunk/jsoncstyleguide.xml#Key_Names_in_JSON_Maps
我也看到了下划线的性质,所以我想它去任何一种方式。只要一致!
可能更容易使一切都使用LOWER()和UPPER()字符串函数
大写或小写1让我们假设我有一个属性名=“名称的节点“在较低的情况下,要找到它,你需要匹配againt完全匹配的字符串
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-随着节点属性与任意字符串的情况下进入前: “名称”,来匹配:
START n=node(*)
WHERE LOWER(n.name)= "name"
RETURN id(n)
id(n)
8
Query took 5 ms and returned 1 rows.
是的,对于关系名称的约定是让他们ALL_UPPERCASE。在Neo4j的所有名称是区分大小写(标签,关系,性质,...)
请记住,这是一个惯例,并不是必需的。 任何项目中最重要的部分是一致性。 使用的编码风格,并坚持下去惠顾!
Neo4j的命名约定:
Cypher支架的例子:
CREATE (:Person {name:"Anne"})-[:MANAGES {start_date:20121112}]->(:WorkGroup {name:"Dev"});
或者:
CREATE (:Person {name:"Anne"})-[:MANAGES {startDate:20121112}]->(:WorkGroup {name:"Dev"});
参考文献:
如果你想空间,你可以。你需要把关系类型放入反引号中。在MySQL中,语法通常用于带空格的对象名称。 – ADTC