我们可以在Cypher中使用MERGE来更新节点属性吗?

问题描述 投票:1回答:1

我正在将数据集聚合到neo4j图中,并为它编写了一个python脚本,使用py2neo执行cypher查询。

考虑一种情况,其中我有一个“item”类型的节点,其属性为“type”和“count”,并且假设我有5种不同类型的项目。

我的脚本遍历数据集,这就是它的作用:

  1. 检查该类型的“item”节点是否存在。
  2. (a)如果存在,则提取其“计数”,将其增加1并更新属性值(b)如果不存在,则创建当前“类型”的“项目”节点并为其指定“计数”我到现在才使用MERGE。

我知道单独的步骤1和2(b)可以使用MERGE进行分组。这意味着密码将检查模式

(n:item{type:"detergent", count:1})

如果它不存在,将创建。

我想从密码大师那里知道的是,我可以使用MERGE甚至更新属性值吗?具体来说,如果经过数据集的10次迭代,如果洗涤剂的数量已经变为4,从我现在使用的程序,我可以替换该程序以使用MERGE,以便解决以下目的:

1)如果洗涤剂出现在迭代中,如果洗涤剂节点不存在,则密码应该为洗涤剂创建一个计数为1的节点。

2)如果洗涤剂出现在迭代中,如果洗涤剂节点已经存在,则密码应该将计数属性增加1。

python neo4j merge cypher
1个回答
2
投票

你能尝试一下:

MERGE (n:item{type:"detergent") 
ON CREATE SET n.count=1 
ON MATCH SET n.count=n.count+1

ON CREATE:当节点不存在时ON MATCH:当在图中找到节点时

希望有所帮助

© www.soinside.com 2019 - 2024. All rights reserved.