2017-05-06 65 views
0

我是Cypher和Neo4j的新手。我有一組標有「線」每一行是一個很長的字符串,如節點: 0067011990999991950051507004+68750+023550FM-12+038299999V0203301N00671220001CN9999999N9+00001+99999999999cypher如何從其他節點的子串創建獨特節點

有跡象表明我關心大約兩子:yeartemp

match(l:Line) 
return toInteger(substring(l.line,15,4)) as year, toInteger(substring(l.line,87,5)) as temp 
limit (5) 

爲了給:

year temp 

1941 44 

1942 90 

1942 12 

1948 100 

1948 -21 

我需要創建一套標有「年」爲今年的每個唯一值的節點,一組不一的標有「溫度」爲每一個獨特的溫度讀數。我還需要使用關係has_temp將每年的溫度讀數關聯起來。 。(然後打印一年,溫度讀數和關係型降序排序的年度順序

任何幫助,將不勝感激

回答

0

試試這個:

match(l:Line) 
with toInteger(substring(l.line,15,4)) as year, 
toInteger(substring(l.line,87,5)) as temp 
MERGE (y:Year{value:year}) 
MERGE (t:Temp{value:temp}) 
MERGE (y)-[s:has_temp]->(t) 
RETURN year,temp,type(s) as rel_type order by year desc 

如果你想檢查後如何導入的節點,你可以這樣做:!?

MATCH (y:Year)-[r]->(t:Temp) 
RETURN y.value as year,t.value as temp,type(r) as re_tzpe order by year desc 
+0

謝謝這與閱讀人數最多的偉大工程 – Rachel

+0

如何獲得年度(S)我知道我可以這樣做MATCH (y:Year) - [r] - >(t:Temp) RETURN y.value as year,count(t.value)as temp_readings order by temp_readings desc limit 2; - resutlts 年\t temp_readings 1950年 1951年\t 75我可能有多年的讀數相同的最高數量,因此限制不是一個好辦法。任何其他想法?謝謝。 – Rachel