我很好奇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