2015-09-07 64 views
2

我知道我喜歡雲下面如何在neo4j中加載csv時輕鬆處理null?

LOAD CSV WITH HEADERS FROM "https://gist.githubusercontent.com/jexp/d788e117129c3730a042/raw/c5f98f269b4a219ebb88bd3eb83d331f439a8201/people.csv" 
    AS line 
WITH line 

WHERE line.PersonName IS NOT NULL 

RETURN line.PersonName, coalesce(line.Company,"None") 

,但在我的情況,有行的許多屬性利用代碼null.Could我重複在Neo4j的線路(圖結構)?可能是這樣的for k,v in line

+0

如果你將null分配給一個屬性,它將不會被創建 –

回答

1

正如MicTech所述,COALESCE這裏將完成這項工作。

對於你的問題,你可以遍歷K,V的線圖的:

LOAD CSV 
WITH HEADERS FROM "https://gist.githubusercontent.com/ikwattro/29d133f8b2a8f022f5c9/raw/adbab9762ff0a15df18b49c9765ba3377d0e3ece/mockdata.csv" AS line 
WITH line 
UNWIND keys(line) as k 
RETURN k, line[k] as v 
1

應該在2.3

WHERE none(k in keys(line) WHERE line[key] IS NULL)

可以在2.2.x中,我認爲唯一的迭代的方法是使用LOAD CSV FROM ... AS line語法,該語句將該行作爲字符串集合返回。但是,然後你失去了通過鑰匙訪問。

LOAD CSV FROM ... AS line 
WHERE NONE(value in line WHERE values IS null) 
... 
+0

好東西的地方沒有! –

1

,而不是在你的

LOAD CSV WITH HEADERS FROM "..." 
WITH line 
WHERE ... 
RETURN ... 

語句,您可以通過在上面的例子中,你可以 「瀏覽」 使用正確的價值觀爲200和100使用

LOAD CSV WITH HEADERS FROM "..." 
WITH line skip 200 limit 100 
WHERE ... 
RETURN ... 

。瀏覽可以通過例如一個在for循環中發佈這個語句的shell腳本。