Wednesday, November 25, 2020

Neo4J What is MERGE query

MERGE either matches existing nodes and binds them, or it creates new data and binds that. It’s like a combination of MATCH and CREATE that additionally allows you to specify what happens if the data was matched or created.


For example, you can specify that the graph must contain a node for a user with a certain name. If there isn’t a node with the correct name, a new node will be created and its name property set.


The last part of MERGE is the ON CREATE and ON MATCH. These allow a query to express additional changes to the properties of a node or relationship, depending on if the element was MATCH -ed in the database or if it was CREATE -ed.


The following graph is used for the examples below:


Some examples 


MATCH (person:Person)

MERGE (city:City { name: person.bornIn })

RETURN person.name, person.bornIn, city


Assume there were 3 persons with different bornIn locations this one will create 


References:

https://neo4j.com/docs/cypher-manual/current/clauses/merge/#query-merge-node-derived


No comments:

Post a Comment