什么是neo4j命名约定?

时间:2012-11-20 22:43:59

标签: neo4j

我对neo4j中的命名约定感到好奇。

我在他们的例子中注意到关系名称大写,例如

left-[r:KNOWS]->right

这是惯例吗? neo4j在关系名称中是否区分大小写?是否有关于索引名称和属性名称的其他命名约定?

3 个答案:

答案 0 :(得分:7)

这就是惯例。我个人使用小写关系类型,是的,它区分大小写。带下划线。

通常,人们也会使用下划线作为索引名称,它们通常是小写的,也是区分大小写的。

另外,需要记住的事项是:如果在创建时未指定方向,则默认为< - right。对我来说不直观,但现在我总是指定方向。

对于属性,我认为大多数人使用JSON样式约定:http://google-styleguide.googlecode.com/svn/trunk/jsoncstyleguide.xml#Key_Names_in_JSON_Maps

我也看到了属性的下划线,所以我猜它是两种方式。只是保持一致!

答案 1 :(得分:4)

是的,关系名称的约定是让它们为ALL_UPPERCASE。 Neo4j中的所有名称都区分大小写(标签,关系,属性......)

请记住,这是一项惯例,而非要求。 任何项目中最重要的部分是一致性。 使用编码风格并始终坚持下去!

Neo4j命名约定:

  • 标签:UpperCamelCase(a.k.a。PascalCase)
  • 关系:CAPITALIZED_WITH_UNDERSCORE
  • 属性键名称:lowerCamelCase或snake_case

Cypher示例:

CREATE (:Person {name:"Anne"})-[:MANAGES {start_date:20121112}]->(:WorkGroup {name:"Dev"});

可替换地:

CREATE (:Person {name:"Anne"})-[:MANAGES {startDate:20121112}]->(:WorkGroup {name:"Dev"});

参考文献:

答案 2 :(得分:0)

使用 LOWER() UPPER()字符串函数

可以更轻松地将所有内容整合到大写或小写

1-假设我有一个属性名称为''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-使用任意字符串案例ex:“NaMe”输入节点属性,以匹配:

START n=node(*)
WHERE LOWER(n.name)= "name"
RETURN id(n)

id(n)
8

Query took 5 ms and returned 1 rows.