기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
쿼리에서 ~id 계산을 수행하지 않습니다.
쿼리IDs에서 사용자 지정을 사용할 때는 항상 쿼리 외부에서 정적 계산을 수행하고 파라미터에 이러한 값을 제공합니다. 정적 값이 제공되면 엔진이 조회를 최적화하고 이러한 값을 스캔하고 필터링하지 않도록 할 수 있습니다.
데이터베이스에 있는 노드 간에 엣지를 생성하려는 경우 한 가지 옵션은 다음과 같습니다.
UNWIND $sections as section MATCH (s:Section {`~id`: 'Sec-' + section.id}) MERGE (s)-[:IS_PART_OF]->(g:Group {`~id`: 'g1'})
파라미터 사용:
parameters={sections: [{id: '1'}, {id: '2'}]}
위의 쿼리에서 섹션id
의 가 쿼리에서 계산됩니다. 계산은 동적이므로 엔진은 정적 인라인 ID를 사용할 수 없으며 결국 모든 섹션 노드를 스캔합니다. 그런 다음 엔진은 필요한 노드에 대해 사후 필터링을 수행합니다. 데이터베이스에 섹션 노드가 많은 경우 비용이 많이 들 수 있습니다.
이를 달성하는 더 좋은 방법은 데이터베이스로 전달되는 ID에 Sec-
를 미리 두는 것입니다.
UNWIND $sections as section MATCH (s:Section {`~id`: section.id}) MERGE (s)-[:IS_PART_OF]->(g:Group {`~id`: 'g1'})
파라미터 사용:
parameters={sections: [{id: 'Sec-1'}, {id: 'Sec-2'}]}