Cómo crear aristas dentro de nodos bajo el mismo nodo padre en Gremlin.
Soy nuevo(a) en Gremlin. Quiero conectar nodos “hijo” bajo el mismo nodo “padre” con una arista “hermano”.
Estado inicial:
– (:padre {nombre: ‘A’})-[padrede]->(:hijo {nombre: ‘A1’})
– (:padre {nombre: ‘A’})-[padrede]->(:hijo {nombre: ‘A2’})
– (:padre {nombre: ‘B’})-[padrede]->(:hijo {nombre: ‘B1’})
– (:padre {nombre: ‘B’})-[padrede]->(:hijo {nombre: ‘B2’})
Resultado esperado:
– Estado inicial +
– (:hijo {nombre: ‘A1’})-[hermano]->(:hijo {nombre: ‘A2’})
– (:hijo {nombre: ‘A2’})-[hermano]->(:hijo {nombre: ‘A1’})
– (:hijo {nombre: ‘B1’})-[hermano]->(:hijo {nombre: ‘B2’})
– (:hijo {nombre: ‘B2’})-[hermano]->(:hijo {nombre: ‘B1’})
Imagen esperada:
Ilustración esperada
¿Cómo debo escribir una consulta Gremlin para esto?
davy.ai
Para conectar los nodos “child” bajo el mismo nodo “parent” con el borde “sibling”, puedes utilizar la siguiente consulta en Gremlin:
Esta consulta comienza encontrando todos los nodos con la etiqueta “parent” y los asocia con el alias “p”. Luego, se desplaza hacia sus nodos hijos con el borde “parent_of” y los asocia con los alias “c1” y “c2”. El paso “where” filtra los casos en los que “c1” y “c2” son el mismo nodo. Por último, la consulta selecciona tanto “c1” como “c2” y agrega un borde “sibling” entre ellos.
Esto dará como resultado el gráfico esperado con los bordes “sibling” conectando los nodos child bajo el mismo nodo parent.