当前位置: 首页 > 知识库问答 >
问题:

基于新节点的节点属性更新

国景铄
2023-03-14
(People)-[:USE]->(Product)
(People)-[:REVIEW]->(Product)
LOAD CSV WITH HEADERS FROM "file:///abcd.csv" AS row 
MERGE (svc:Consumer {name: row.referring_name})
ON CREATE SET
    svc.skewNum = toInteger(row.skew_num)
MERGE (p:PrimaryConsumer) WHERE p.name = svc.name
ON MATCH SET
    svc.city = p.city,
    svc.latitude = toFloat(p.latitude),
    svc.longitude = toFloat(p.longitude),
    svc.consumerId = toInteger(p.primaryConsumerId)

SyntaxError:无效输入“h”:预期为“I/I”(第10行,第28列(偏移量:346))“merge(p:primaryconsumer),其中p.name=svc.name”

我100%确信这些名称是唯一的,并且将与现有节点集中的唯一使用者名称相匹配(有待观察)。

当唯一节点属性匹配时,如何将现有属性添加到新数据中?(我希望获得唯一的ID,但我必须能够在匹配上执行新数据的更新)

 USING PERIODIC COMMIT
    LOAD CSV WITH HEADERS FROM "file:///abcde.csv" AS row
    MERGE (svc:Consumer {name: row.referring_name})
    ON CREATE SET
        svc.skeyNum = toInteger(row.skew_num)
        MATCH (p:primaryConsumer {name: svc:name})
    ON MATCH SET
        svc.city = p.city,
        svc.latitude = toFloat(p.latitude),
        svc.longitude = toFloat(p.longitude),
        svc.providerId = toInteger(p.providerId)
    MERGE (spec:Product {name: row.svc_prod_name})
    ON CREATE SET
        spec.name = row.svc_prov_name,
        spec.skew = toInteger(row.skew_id),
        spec.city = row.svc_prov_city,
        spec.totalAllowed = toFloat(row.total_allowed)
    MERGE (svc)-[r:CONFIRMED_PURCHASE]->(spec)
    ON MATCH SET r.totalAllowed = r.totalAllowed + spec.totalAllowed
    ON CREATE SET r.totalAllowed = spec.totalAllowed
;

共有1个答案

凌琦
2023-03-14

merge不接受where子句。

更改以下内容:

MERGE (p:PrimaryConsumer) WHERE p.name = svc.name

对此:

MERGE (p:PrimaryConsumer {name: svc.name})
LOAD CSV WITH HEADERS FROM "file:///abcd.csv" AS row 
MERGE (svc:Consumer {name: row.referring_name})
ON CREATE SET
    svc.skewNum = toInteger(row.skew_num)
MERGE (p:PrimaryConsumer {name: svc.name})
ON MATCH SET
    svc.city = p.city,
    svc.latitude = toFloat(p.latitude),
    svc.longitude = toFloat(p.longitude),
    svc.consumerId = toInteger(p.primaryConsumerId)
 类似资料:
  • 对于下面的XML,我正在尝试根据属性和节点值提取节点。 基于属性class=pass和h1包含('objectives'),我试图提取以下输出。 “目标”是节点值字符串“1任务目标”的一部分 1任务目标1目标2 下面是我正在尝试的XPath表达式。然而,这并没有产生任何输出。你能指出我做错了什么吗? 谢谢

  • 如何能够基于另一个同级节点的属性选择节点属性?我想要实现的是从所有节点中提取链接(href值),这些节点后跟具有属性class=“body table news loss”的节点跨度,即选择器应该返回https://finance.yahoo.com/news/inspiremd-announces-planned-recapitalization-120000752.html在下面的示例中。我试

  • 我很难使用下面的用例。 以下是XML: 我想要实现的是基于节点

  • 我必须在这个图上执行一些任务。1)找到所有没有后继的顶点。2)给没有后继的顶点赋值。(我可以用顶点属性来做这件事)。3)回溯图并用子节点的最小值更新每一层的所有父节点(甚至是中间父节点)。 例如, 根据上面的DAG,顶点{2,5,6,7}没有任何后继或外边。假设我将分别为顶点{2,5,6,7}赋值{3,2,4,6}。

  • 主要内容:节点锚点,节点标签,节点内容每个表示节点包括两个主要特征,称为锚和标记。可以使用节点内容指定节点属性,从字符流中省略。 节点表示的基本示例如下 - 节点锚点 属性表示将来参考的节点。 节点中YAML表示的字符流用符号表示。 YAML处理器不需要保留锚名称以及其中包含的表示细节。以下代码解释了这一点 - 锚节点生成的YAML输出如下所示 - 节点标签 属性表示完全定义节点的本机数据结构的类型。 标签用()指示符表示。 标签被视