2014-12-09 2 views
1

컨테이너 내의 vertifications를 반복하고 루프의 현재 vertice와 주어진 vertice 사이에 가장자리를 추가하는 방법을 알아 내려고합니다. Gremlin의 vertifications 루프를 반복하고 가장자리를 추가하는 방법

내가 지금까지 무엇을 가지고 : 이 나에게 주어진 컨테이너 내의 모든 정점의 ID의 배열 제공 :

v=g.V('containerName','MyContainer').outE.inV.id 

결과 :

{"results":[12,320004,280004,240004,200004,160004,120004,80004,40004],"success":true,"version":"2.4.0","queryTime":35.089565} 

지금 내가 루프 원하는/반복 처리를 이 배열에있는 모든 id에 대해 id의 vertice를 가져 와서 루프의 주어진 vertice와 현재 vertice 사이에 가장자리를 추가합니다.

어떻게 수행 할 수 있는지 알고있는 사람은 누구입니까?

답변

0

새 가장자리를 추가하는 sideEffect을 만들 수 있습니다.

g = TinkerGraphFactory.createTinkerGraph() 

하는의 당신이 피터 마르코 (교체 아웃 전용)

givenVertex = g.V('name','peter').next() 
g.V('name','marko').out.sideEffect{g.addEdge(givenVertex,it, 'yourLabel')} 

결과를 확인 모든 이웃에 연결할 가정하자 : 장난감 어설프게 graph

g.V('name','peter').out.name 
==>lop // lop appears twice because edge peter -> lop was present previous to operation 
==>lop 
==>vadas 
==>josh 
+0

안녕 , 당신이 제안한 것을 시도했지만 gV ('containerName', 'Acontainer')를 수행 한 결과를 보았을 때 out.containerN 내 경우 엔 내가 { "results": [null, .., null], "success": true, "version": "2.4.0", "queryTime": 33.366562} – agiledevpro

+0

인 것처럼 보입니다. 생성되었으므로 gV ('contaninerName', 'Acontainer')를 수행하여 결과를 확인할 수 있습니다. outE – agiledevpro

+0

렉스 스터에 문제가있을 수 있습니다. TinkerGraph 만 사용하여 솔루션을 시도했습니다. 그럼에도 불구하고, 정점의 ID를 가져 오는 방법에 대한 질문을 보았습니다. 난 당신이 ID를 통해 반복 수있는 버텍스를 다시 가져오고 sideEffect 적용 할 것 같아요. 'g.V ('containerName', 'MyContainer'). out.inv.id'는 반복 가능해야합니다. 아마도 'gV ('containerName ','MyContainer ')와 같은 것을 시도해 볼 수 있습니다 .. outE.inV.id.sieEffect {g.addEdge (gv (), next(), gv (it) .next(),'yourLabel ')}' – Faber

관련 문제