2016-04-20 119 views
1
路徑語法的基本問題

我對此的Cypher查詢的語法問題:關於Cypher支架

MATCH (tom:Person {name: "Tom Hanks"})-[:ACTED_IN]->(tomHanksMovies) 
RETURN tom, tomHanksMovies 

我發誓,我已經看到了一些路徑有兩個破折號,如--[:ACTED_IN]。兩個破折號之間的區別是什麼?

MATCH模式中的關係是:[:ACTED_IN]。我認爲可以肯定地說缺少鑰匙是因爲不需要標識符。

推而廣之,那麼,爲什麼不(tomHanksMovies)需要寫入明確表明它基本上只是一個標識符,如(tomHanksMovies:)?或者它不是一個標識符?我讀過它也稱爲變量。什麼是正確的術語?

回答

3

你會看到這樣的Cypher模式:(a)-->(b),但從來沒有(a)--[:ACTED_IN]->(b),因爲後者是不合法的。 --語法僅表示存在關係,但關係類型無關緊要(並且不需要使用任何關係屬性)。

您表示標識符作爲(一個節點或[用於關係後的第一串,只要該字符串不與:{字符開始。在節點標籤關係類型之前使用:字符。 {}字符用於包含屬性名稱/值對。

在neo4j文檔中被引用,所以這是首選名稱。但是,人們也經常使用variable

+0

非常感謝您清理所有這些煩人的問題! –

+0

但是...... [:ACTED_IN]'後面的原因是什麼,而不僅僅是[ACTED_IN]'? –

+0

我已經更新了我的答案。 – cybersam