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.

Cómo devolver una lista del último vértice dentro de cada objeto de ruta?

Estoy tratando de construir un mecanismo de encadenamiento con mi consulta y quiero comenzar mi próxima invocación desde el final de la anterior. He intentado usar el paso by, pero no parece funcionar ni hacer lo que quiero. ¿Cuál es la mejor manera de obtener el último vértice en todos los caminos de la consulta anterior?

g.V(1).repeat(out()).times(2).emit().path();

Si esto retornara:

[v[1], v[2], v[3]]
[v[1], v[3], v[4]]

Todo lo que quiero es:

v[3]
v[4]

¡Gracias!

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Una forma de lograr esto es usar el paso tail después de path() para obtener solo el último elemento de cada camino. Luego, puedes usar el paso dedup para eliminar cualquier duplicado en la lista de vértices. Finalmente, puedes usar el paso fold para envolver la salida en una lista y obtener el formato de salida deseado. La consulta se vería así:

    g.V(1).repeat(out()).times(2).emit().path().tail(1).dedup().fold()
    

    Esto debería devolver:

    [v[3], v[4]]
    

Comments are closed.