0

对所有人都好,请帮我解决这个问题: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毫秒后完成。

我通过以下方式验证结果:

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

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

请指导我查询应该创建的所有关系在这种情况下将是 30 个具有类别的关系产品

4

1 回答 1

0

关键部分是MATCH(x:Category{uuid:row.uuid_category})

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

由于您的输入由 4 个相同类别(我们称它们为 1、2、3 和 4)组成,重复 7 次(到目前为止总共 28 行),然后其中两个重复出现一次(如果两者都出现,则为 2 次)成功,总共 30 行),如果您的某些匹配失败,并且具有某些 uuid_category 属性的 :Category 节点实际上并未出现在图中,这将是有意义的。

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

因此,对于以 3 或 4 结尾的 uuid_category,没有 :Category 节点。

根据您的数据检查您的图表以确认。

于 2018-08-18T00:45:15.743 回答