在neo4j中加载csv时,不要创建所有关系

在neo4j中加载csv时,不要创建所有关系,neo4j,cypher-3.1,Neo4j,Cypher 3.1,大家好,请帮我解决这个问题:D 执行查询时: USING PERIODIC COMMIT LOAD CSV WITH HEADERS FROM "file:///Create_all.csv" AS row MATCH(x:Category{uuid:row.uuid_category}) MERGE (t:Subscriber{name:row.name_subscriber, uuid:row.uuid_subscriber}) CREATE (n:Product{name: row.na

大家好,请帮我解决这个问题:D

执行查询时:

USING PERIODIC COMMIT LOAD CSV WITH HEADERS FROM "file:///Create_all.csv" AS row
MATCH(x:Category{uuid:row.uuid_category}) 
MERGE (t:Subscriber{name:row.name_subscriber, uuid:row.uuid_subscriber})
CREATE (n:Product{name: row.name_product, uuid: row.uuid_product}),
(Price:AttributeValue{name:'Price', value: row.price_product}),
(Stock:AttributeValue{name:'Stock', value: row.stock_product }),
(Style:AttributeValue{name:'Style', value: 'Pop Art'}),
(Subject:AttributeValue{name:'Subject', value: 'Portrait'}),
(Originality:AttributeValue{name:'Originality', value: 'Reproduction'}),
(Region:AttributeValue{name:'Region', value: 'Japan'}),
(Price)-[:IS_ATTRIBUTEVALUE_OF]->(n),
(Stock)-[:IS_ATTRIBUTEVALUE_OF]->(n),
(Style)-[:IS_ATTRIBUTEVALUE_OF]->(n),
(Subject)-[:IS_ATTRIBUTEVALUE_OF]->(n),
(Originality)-[:IS_ATTRIBUTEVALUE_OF]->(n),
(Region)-[:IS_ATTRIBUTEVALUE_OF]->(n)
  WITH (n),(t),(x)     

create  (n)-[:OF_CATEGORY]->(x)
create (t)-[:SELLS]->(n)

我的csv格式如下:

我有4个类别,30个产品和10个订户创建我:

添加164个标签,创建164个节点,设置328个属性,创建184个 关系,254毫秒后完成

我用以下方法验证结果:

匹配p=()-[r:OF_CATEGORY]->()返回计数(r)

创建了23个关系,但未创建其余7个关系


请指导我如何创建查询。在这种情况下,所有关系都将是30个关系类别的产品

关键部分是
匹配(x:Category{uuid:row.uuid\u Category})

如果某一行的匹配失败,则该行将被清除,并且该行的任何其他操作都不会执行

由于您的输入由相同类别的4个(我们称它们为1、2、3和4)组成,重复7次(迄今为止总共28行),然后其中两个重复出现一次(如果两个都成功,则两个重复出现一次,总共出现30行),因此如果您的某些匹配失败,这是有意义的,with:Category节点,其中一些uuid_类别属性实际上不存在于图中

在这些UUID(1、2、3和4)中,只有1和2出现在末尾(这两个UUID在8行中出现,而UUID 3和4出现7次)。如果UUID3或UUID4在图中没有相应的节点,这将是有意义的。这将得到1*7+2*8=23,这是您的查询正在创建的关系数

因此,对于以3或4结尾的uuid_类别,没有:Category节点

对照数据检查图表以进行确认