[neo4j] Neo4J는 ID로 노드 가져 오기

내 프로젝트 중 하나에 neo4j를 사용하고 있습니다. 단일 속성 만있는 노드가 있습니다. nameID를 사용하여 해당 노드를 얻고 싶습니다. 이미 ID가 있지만이 코드를 사용할 때

MATCH (s:SKILLS{ID:65110}) return s

아무것도 반환하지 않습니다. 여기에 내 노드가 있습니다.

여기에 이미지 설명 입력

쿼리가 잘못된 경우 번호를 사용하여 쿼리하는 방법



답변

MATCH (s)
WHERE ID(s) = 65110
RETURN s

ID함수 는 노드 또는 관계의 ID를 가져옵니다. 이것은 호출 id되거나 ID사용자가 만든 속성과 다릅니다 .


답변

경고 : 다음 답변이 잘못되었습니다! START는 레거시 인덱스에 액세스 할 때만 사용해야합니다 . Cypher 2.2 이상 에서는 비활성화되어 있습니다.

Neo4j는를 사용할 것을 권장WHERE ID(n) = 하며, 또한 단일 조회 만 필요 하다고 명시합니다 (일치하는 ID를 찾기 위해 모든 노드를 스캔하지 않음).

다른 사람이 같은 실수를하지 않도록이 답변을 유지합니다.

당신은 할 수 있습니다 사용 WHERE ID(s) = 65110하지만,이 데이터베이스에있는 모든 노드의 ID를 확인합니다.

이를 수행하는 더 효율적인 방법이 있습니다.

START s=NODE(517) MATCH(s) RETURN s


답변

다음과 같이 말할 수 있습니다.

(n:User) where id(n) >=20 RETURN n

그러면 노드 참조 ID가 20 이상인 사용자 유형의 모든 노드가 반환됩니다.


답변