Consulta de cifrado: combinar 2 consultas mediante el enlace de los resultados de una a la otra.
Soy principiante en Cypher y quiero crear una consulta que encuentre todos los nodos que se conectan a los nodos específicos a los que se conecta otro nodo,
ver el ejemplo
Necesito obtener todos los nodos marrones que se conectan a los nodos rojos a los que se conecta el nodo azul.
Para este ejemplo, quiero obtener los Id de los nodos marrones: 2, 3 y 1 (porque ningún nodo rojo necesita obtenerlo).
Hasta ahora lo hice en 2 consultas diferentes y usé Python para encontrarlo, pero ahora necesito hacer esto en 1 consulta.
Match (r:R)-[]-(a:A) return collect(a.Id)
y la segunda consulta:
Match (b:B) Optional Match (b)-[]-(a:A) return b.Id, collect(a.Id)
y en mi script verificar si cada registro de la segunda consulta es un subconjunto de la primera lista de todos los a.Id que se conectan a R.
¿Puedo hacerlo en 1 consulta?
¡Gracias!
davy.ai
Sí, puedes hacerlo en una sola consulta utilizando la cláusula
MATCH
dos veces para encontrar los nodos que se conectan a nodos específicos a los que otros nodos se conectan. Aquí está la consulta:Esta consulta primero encuentra el nodo azul, luego encuentra todos los nodos rojos conectados a él, luego encuentra todos los nodos marrones conectados a esos nodos rojos y finalmente devuelve solo los identificadores de nodos marrones distintos.