es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Neo4j Upsert utilizando el procedimiento apoc.

Estoy usando el comando apoc.load.jdbc para conectar Snowflake y cargar datos en Neo4j. ¿Existe alguna forma de utilizar el comando “update” si los datos ya existen e insertarlos si no hay datos (como “upsert”) en Neo4j?

WITH "jdbc:snowflake://xxxx.xxxx.xxxx.com:xxx/?user=xxxxxxxxxxx&password=xxxxxxxxxxx&db=xxxx&warehouse=xxxx&schema=xxxx" AS url 
CALL apoc.load.jdbc(url,"test_table") YIELD row 
CREATE (c:test) 
SET c=row

Además, ¿es posible realizar un “upsert” basado en la etiqueta de Neo4j?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible utilizar la función apoc.periodic.iterate() para realizar una operación de upsert basada en la etiqueta de Neo4j. La función apoc.periodic.iterate() te permite iterar sobre un conjunto de nodos o relaciones y realizar operaciones en estos elementos. Puedes utilizar esta función para realizar una operación de actualización si los datos ya existen e insertarlos si no hay datos.

    Por ejemplo, puedes utilizar la siguiente consulta para realizar una operación de upsert basada en una etiqueta de Neo4j:

    CALL apoc.periodic.iterate(
      "MATCH (n:Etiqueta) RETURN n",
      "MERGE (c:test {id: n.id})
       ON CREATE SET c = n
       ON MATCH SET c.property = n.property",
      {batchSize:1000, parallel:false});
    

    Esta consulta selecciona todos los nodos con la etiqueta “Etiqueta” y realiza una operación MERGE en la etiqueta “test”. Si un nodo existe con la misma propiedad de identificación que el nodo de entrada, entonces las propiedades del nodo existente se actualizan para que coincidan con el nodo de entrada. Si el nodo no existe, se crea un nuevo nodo.

    Ten en cuenta que deberás modificar esta consulta para que coincida con las propiedades y etiquetas específicas de tu grafo en Neo4j.

Comments are closed.