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.

Obtener o crear un vértice/arista en Apache TinkerPop Gremlin en una consulta.

¿Cómo obtener o crear un vértice/arista en Apache TinkerPop Gremlin en una consulta?

Actualmente estoy haciendo esto:

id = None
if g.V().has(’employee’, ‘name’, ‘thirumal’).hasNext():
id = g.V().has(’employee’, ‘name’, ‘thirumal’).values(‘id’)
else:
id = uuid4()
g.addV(’employee’).property(T.id, id).property(‘name’, ‘Thirumal’).iterate()
logging.debug(“El ID es {}”.format(id))

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para obtener o crear un vértice/arista en Apache TinkerPop Gremlin en una sola consulta, puedes usar el paso coalesce().

    El paso coalesce() toma múltiples fuentes de recorrido como argumentos y devuelve el primer resultado no vacío.

    Por ejemplo, para obtener o crear un vértice con la propiedad name establecida en thirumal, puedes usar la siguiente consulta:

    g.V().coalesce(
      // intentar encontrar un vértice con name = "thirumal"
      __.has('employee', 'name', 'thirumal'),
    
      // si no se encuentra, agregar un nuevo vértice
      __.addV('employee')
        .property(T.id, uuid4())
        .property('name', 'thirumal')
    ).next()
    

    Esta consulta primero intentará encontrar un vértice con la propiedad name establecida en thirumal. Si encuentra uno, devuelve ese vértice. Si no encuentra ninguno, agrega un nuevo vértice con un UUID generado aleatoriamente y la propiedad name establecida en thirumal, y devuelve ese vértice.

    De manera similar, puedes utilizar coalesce() para obtener o crear una arista entre dos vértices con una etiqueta y propiedades específicas.

Comments are closed.