私は 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)
何が起こっているのか、何が間違っているのか誰か説明してもらえますか? インターネットで探しましたが、参考になるものが見つかりませんでした。