고유 노드를 만드는 방법, 즉 속성의 고유성을 어떻게 보장합니까?
unique constraint은 해당 속성의 고유성을 보장하는 (레이블, 속성) 쌍에 만들 수 있습니다.
예컨대
CREATE UNIQUE CONSTRAINT ON :Person(name)
같은 이름의 노드 2 개를 사용할 수 없도록하십시오. 당신이 자바 API에서 그렇게하려면 뭔가 like this을 할 거라고 :
try (Transaction tx = graphdb.beginTx())
{
graphdb.schema()
.constraintFor(DynamicLabel.label("Person"))
.assertPropertyIsUnique("name")
.create();
tx.success();
}
플러그인 생명주기 내에서 제약 조건과 인덱스를 생성 할 수있는 후크가 있습니까?
트랜잭션에서는 가능하지만 IIRC에서는 트랜잭션 당 하나의 인덱스/제약 조건 만 만들 수 있습니다.
노드를 반환하면 전체 데이터베이스가 반환됩니다. 노드 또는 pojo 목록을 반환하려면 어떻게해야합니까? 대표자의 유효한 예 또는 설명이 있습니까?
사이퍼를 원하십니까? 당신에게 노드가에있는 속성의 맵을 반환합니다 사이퍼 땅에서
MATCH (n)
RETURN n
LIMIT 1
: 하나 개의 노드를 반환하는 간단한 쿼리이 될 것입니다. 더 구체적인 것을 얻고 싶다면 다음을 시도해 볼 수 있습니다 :
MATCH (n:Person)
RETURN n.name AS personName
LIMIT 1
그런 다음 결과 집합의 해당 열에 대해 문자열을 반환합니다.
- 당신을 돌려 줄 '노드'와 '관계'객체 것이다 당신의 자신의 순회를 쓸 수 있습니다 자바 API에서
- 자바 API에 대한 업데이트. 그에서 당신은 당신이 관심있는 어떤 특성을 추출해야 할 것이다. 사이퍼와
try (Transaction tx = graphDatabaseService.beginTx())
{
ResourceIterable<Node> people = GlobalGraphOperations.at(graphDatabaseService).getAllNodesWithLabel(DynamicLabel.label("Person"));
for (Node node : people)
{
String name = (String) node.getProperty("name");
}
tx.success();
}
아마 3 개의 개별 질문으로 나눌 수 있습니까? –
# 2에는 META-INF/services/...를 통해 구현하고 등록 할 수있는 PluginLifeCycle이라는 인터페이스가 있으며 여기에는 start 및 stop과 같은 라이프 사이클 메소드가 있습니다. 예제를 보려면 https://github.com/AtomRain/neo4j-extensions/tree/master/neo4j-extensions-java –
# 2 위의 프로젝트를 참조하십시오. org.neo4j.server.plugins.PluginLifecycle은 비어 있습니다. @MichaelHunger – Nishant