2015-11-03 85 views
2

要表達暗號的條件下,我仍在使用下面的訣竅:Noe4j暗號 - 條件語句

FOREACH(ignoreMe IN CASE WHEN //Put conditions here// THEN [1] ELSE [] END | 
//Put instruction here//) 

我一直在使用這個相當長一段時間。現在有更好的解決方案嗎?會在下一個穩定版本中出現嗎?

編輯: 我指的是MATCH/WHERE模式不能使用的情況。 對於爲例: Create nodes and relations conditionally when loading nodes from csv in Neo4j

https://stackoverflow.com/search?q=FOREACH%28ignoreMe+IN+CASE+WHEN

+0

我通常會根據實際圖中的數據制定條件;例如MATCH(a)where a.someCondition = 1 WITH a(做其他事情) – FrobberOfBits

回答

0

我不知道你如何更好地考慮這一點,但另一種方式來解決這個LOAD CSV是做:

LOAD CSV WITH HEADERS from "file:/testfile.csv" as row 
WHERE trim(row.b) = 'truck' 
MERGE (p:Truck {vehicleType: row.a})); 

LOAD CSV WITH HEADERS from "file:/testfile.csv" as row 
WHERE trim(row.b) = 'car' 
MERGE (p:Car {vehicleType: row.a})); 

解析一個CSV文件不需要太多時間(至少相對於查詢而言),所以它不應該做太多的事情來做兩次。

另一種選擇是使用neo4j-import命令(http://neo4j.com/docs/stable/import-tool.html)。您可能需要修改您的CSV文件,但導入速度要快得多。此外,這不適用於您的數據庫的增量更新。 neo4j-import每次運行時都會從頭開始創建一個新的數據庫(這是爲什麼它可以如此之快的一部分)

+0

感謝您的時間和答覆。請注意,我並不是在詢問CSV導入問題,而是針對在Cypher中表達條件的少數情況下的棘手問題 – Hugo