2011-10-06 3 views

답변

5

효과가있는 SideEffect 파이프를 구성 할 수 있습니다. 간단한 경우,이 작업을 수행 :

g.v(1)._().sideEffect{it.firstname='Marko'; it.lastname='Rodriguez'} 

을 다른 방법으로, 당신은 당신이지도의 each 방법을 사용할 수있는 하나의 노드에서 작동하고지도를해야하는 경우 :

m = [firstname:'Marko', lastname:'Rodriguez'] 
m.each{g.v(1).setProperty(it.key, it.value)} 

을 아니면 수 설정할 값이있는 해시가있는 파이프 내부에서이 작업을 수행하십시오. 다시 한 번 sideEffect 파이프를 사용합니다. 폐쇄의 내부에 폐쇄가 있기 때문에 it의 값을 다른 것 (이 경우 tn)의 "이 노드"에 대한 약자로 별칭을 지정할 필요가 있으므로 두 번째 폐쇄에서 접근 가능해야합니다. :

이 방법

gremlin> g.v(0).map 
==>lastname=Rodriguez 
==>firstname=Marko 
gremlin> g.v(1).map 
==>lastname=Clinton 
==>firstname=William 

하나 개의 잠재적 잡았다 당신의 문자열이 아닌 정수 그 정점 ID를 기억할 필요가있다, 그래서 적절하게 인용해야합니다 :

g = new TinkerGraph() 
g.addVertex() 
g.addVertex() 
m = ['0': [firstname: 'Marko', lastname: 'Rodriguez'], '1': [firstname: 'William', lastname: 'Clinton']] 
g.V.sideEffect{tn = it; m[tn.id].each{tn.setProperty(it.key, it.value)}} 
는 다음을 얻을 것입니다.

+0

Pridkett, 가능한 한 빨리 테스트하겠습니다. 그러나 더 쉬운 해결책이있을 것이라고 생각했습니다. – JMaylin

관련 문제