2017-10-23 6 views

답변

0

속성에는 콜렉션 (파이썬 목록과 유사)이라는 더 복잡한 데이터 구조가 포함될 수 있지만 매핑 (파이썬 사전과 유사)은 포함될 수 없습니다. 유스 케이스의 경우 두 개의 다른 속성을 만들어야 할 것입니다. 예를 들어, 인치 또는 센티미터 단위로 측정 된 속성이있는 노드가있는 경우 데이터를 아래와 같은 매핑으로 저장할 수 있습니다.

CREATE (n:SomeLabel {depth_val: 123, depth_unit: "cm", name: "Something"}) 

물론 매개 변수화하는 것이 좋습니다. += 연산자도 알고 있어야합니다.이 연산자를 사용하면 매핑의 모든 속성을 노드에 할당 할 수 있습니다. 아래에 매개 변수로 예제를 제공했습니다.

브라우저의 경우, 다음과 같은 매개 변수를 설정할 수 있습니다

:param measurement: {name:"Something", depth_val: 123, depth_unit: "cm"} 

을 한 후 다음을 실행합니다. 이것은 첫 번째 쿼리와 동일합니다.

CREATE (n:SomeLabel) SET n += $measurement 

대안이 컬렉션은 같은 유형의 값을 저장해야하기 때문에, 그러나, 제로 번째 항목이 당신의 가치와 다음 항목이 장치를 표시했다 컬렉션으로 당신의 값을 저장하는 것입니다, 당신은 가능성이 가장 높은 것 이상적인 것과 거리가 먼 정수를 사용하여 코드를 고안하는 것. 속성이 너무 많으면 문제가 발생할 수 있습니다 (예 : 각 항목에 대해 둘 이상의 측정 값이있는 경우). 필요한 경우 각 관찰 또는 측정을 새 노드로 저장할 수 있습니다.

+0

분명히 이것은 우아한 해결책 일 것입니다. 그러나 속성은 컬렉션을 저장할 수 없습니다. 답안의 첫 번째 질의 ('CREATE')는 다음과 같은 오류를 발생시킵니다 : "속성 값은 오직 원시 타입이나 그 배열 일 수 있습니다." –

+0

좋은 지적! 나는 그에 따라 수정했습니다 ... –