Proyectando todos los valores en Gremlin
Me gustaría concatenar todos los valores de dos vértices relacionados en Gremlin.
Dado lo siguiente: –
g.addV ('Path'). como ('1').
propiedad (única, 'Source', 12345).
addV ('PathState'). como ('2').
propiedad (única, 'Length', 201).
propiedad (única, 'Tag', 'TestTag').
addE ('state'). desde ('1'). hasta ('2')
Entiendo que puedo escribir una proyección, utilizando valores nombrados, como este:
g.V ().hasLabel ('Path')
.proyecto ("Id", "Label", "Longitud", "Tag")
.by (id)
.by (etiqueta)
.by (out ('state'). values ("Length"))
.by (out ('state'). values ("Tag"))
¿Existe una forma genérica de concatenar todas las propiedades del vértice ‘state’ conectado al vértice Path?
Estoy utilizando C # Gremlin.Net para intentar crear un método genérico para recuperar ‘vertex con StateVertex conectado’, por lo que tengo una opción de utilizar la reflexión para construir las partes ‘by ()’ de una traversia, pero parece que debería haber una forma más simple.
davy.ai
Para concatenar todas las propiedades del vértice conectado ‘state’ al vértice Path, puedes usar el paso
valueMap()
en Gremlin. Aquí hay un ejemplo de traveral:Esto devolverá una lista de mapas, donde cada mapa representa las propiedades de un vértice ‘state’ conectado. Para concatenarlos todos en un solo mapa, puedes usar el paso
fold()
después devalueMap()
. Esto te dará una lista de mapas, que luego puedes concatenar utilizando el lenguaje de programación que elijas.