我是 neo4j 的新手,遇到 MERGE 子句的问题。我有一个方法来做这样的查询:
def upsert (idValue, valueField1):
query = "MERGE (n:Node {id: '" + idValue+ "'}) "
query += "ON MATCH SET n.field1= n.field1+ " + str(valueField1) + " "
query += "ON CREATE SET n = {id: '" + idValue + "', field1: 0} "
return db.run(query)
然后,我调用这样的方法:
upsert("1", 0)
upsert("2", 0)
upsert("3", 5)
upsert("1", 2)
upsert("1", 1)
所以,在那之后,我期待这个:
node (id="1", field1=3)
node (id="2", field1=0)
node (id="3", field1=0)
但是,我得到了这个:
node (id="1", field1=2)
node (id="2", field1=0)
node (id="3", field1=0)
此外,如果我再次拨打相同的电话,我会得到:
node (id="1", field1=4)
node (id="2", field1=0)
node (id="3", field1=5)
谁能解释一下发生了什么,我做错了什么?我在互联网上寻找,但我找不到任何对我有帮助的东西。