如何使用密码创建关系



上周我一直在学习neo4j/cypher。我终于能够上传两个csv文件并创建一个关系,";捕获";。然而,我对自己对代码的理解并不完全有信心,因为我在neo4j网站上学习教程。你能帮我确认一下我所做的是正确的吗。

我有两个csv文件;cap.csv";和一个";survey.csv";。调查表包含在调查地点进行的每项独特调查的数据。cap表包含捕获的每种独特生物体的数据。在cap表中,我有一个外键,";survey_ id";,在Postgres数据库中,您将加入调查表中的p.key。

我想建立一种关系;捕获";,显示了基于";日期";列。

调查表|lake_id |日期|调查_id |持续时间||--------|---------------|||--|2014年5月27日| 1 | 7||2013年3月28日| 2010年2月2日||2019年6月29日| 3月23日||3 | 08/21 | 4 | 54||2018年7月23日| 5月23日||2 | 07/22/23 | 6 | 12 |

捕获表|cap_id |物种|capture_life阶段|重量|survey_id||--------|---------------|||-----|---||1|a|成年人|10|1||2|a|成年人|10|2||3|b|juv|23|3||4|a|成年人|54|4||5|b|juv|23|5||6|c|juv|12|6|

LOAD CSV WITH HEADERS FROM 'file:///cap.csv' AS row
WITH
row.id as id, 
row.species as species,
row.capture_life_stage as capture_life_stage,
toInteger(row.weight) as weight,
row.survey_id as survey_id
MATCH (c:cap {id: id})
MERGE (s) - [rel:captured {survey_id: survey_id}] ->(c)
return count(rel)

我很难理解上面写的代码。我完全遵循了neo4j教程,但使用了我的数据(https://neo4j.com/developer/desktop-csv-import/)。

  1. 我对数据检查相当有信心,但上面的代码是否创建了";捕获的";显示在那个独特的调查日期捕获的每个独特生物体的关系?根据我所看到的视觉效果,我相信它确实做到了,但我并没有完全理解代码中的每一步。

  2. 代码中MATCH (c:cap {id: id})的用途是什么?

下面的代码

MATCH (c:cap {id: id})

与相同

MATCH (c:cap)
Where c.id = id

这是一种基于id查找已捕获节点的较短方法,然后创建与"调查"节点的关系。

问题:s未在查询中定义。它在哪里?

最新更新