정점에 여러 속성을 추가하고 싶습니다. 내가 할 수있는 : 단일 쿼리에서Gremlin에서 여러 버텍스 속성을 업데이트하는 방법은 무엇입니까?
g.v(1).firstname='Marko'
g.v(1).lastname='Rodriguez'
그러나 방법은 다음과 해시 {: '마르코', LASTNAME '로드리게스'FIRSTNAME} 이러한 속성을 추가 할?
정점에 여러 속성을 추가하고 싶습니다. 내가 할 수있는 : 단일 쿼리에서Gremlin에서 여러 버텍스 속성을 업데이트하는 방법은 무엇입니까?
g.v(1).firstname='Marko'
g.v(1).lastname='Rodriguez'
그러나 방법은 다음과 해시 {: '마르코', LASTNAME '로드리게스'FIRSTNAME} 이러한 속성을 추가 할?
효과가있는 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)}}
는 다음을 얻을 것입니다.
Pridkett, 가능한 한 빨리 테스트하겠습니다. 그러나 더 쉬운 해결책이있을 것이라고 생각했습니다. – JMaylin