我必须在Neo4j中创建唯一的节点,但是这个查询不正确,因为Neo4j说
CREATE UNIQUE
不支持此模式
List<String> users = pUsers.collect();
for(String u : users){
if(u.equals("error"))
continue;
else{
String cql = " CREATE UNIQUE (n:User {value:'" + u +"'})";
st.executeUpdate(cql);
}
我该如何解决?
答案 0 :(得分:3)
在使用CREATE UNIQUE之前,您需要MATCH
个节点。之后,使用匹配的节点在图形中创建唯一的模式。 CREATE UNIQUE
将在图表中进行最少的更改。我相信你需要的是MERGE
。 CREATE UNIQUE文档说:
MERGE可能是您想要使用的而不是
CREATE UNIQUE
。注意 但是,MERGE
没有给予强有力的保证 关系是独一无二的。
因此,您可以将代码调整为:
List<String> users = pUsers.collect();
for(String u : users){
if(u.equals("error"))
continue;
else{
String cql = "MERGE (n:User {value:'" + u +"'})";
st.executeUpdate(cql);
}
}
查看this answer。