如何在neo4j
中创建唯一节点?
我有用户模型,它有UserID
,serName
,EMailID
,Mobile
,Address
,Zipcode
等属性...
我想为上述用户创建唯一的节点。我将UserID
,UserName
,EMailID
,Mobile
作为唯一字段。所以,当同一个UserID
或此处提到的任何字段试图再次输入时,它应该返回为错误。
有可能吗?
答案 0 :(得分:1)
我假设这是针对neo4j(1.9)的稳定版本,因为2.0确实改变了索引的呈现方式。
您说您的User
节点将具有多个属性,每个属性都是唯一的,这些属性是用作复合键,还是只将UserName用作键?
Neo4j有一个特殊的类用于执行一种“获取或创建”节点,但它只适用于一个键,所以如果你创建一个复合键,你必须做一些事情,比如连接你的键。
查找文档here。这是一个例子:
public Node getOrCreateUserWithUniqueFactory(String username, GraphDatabaseService graphDb) {
UniqueFactory<Node> factory = new UniqueFactory.UniqueNodeFactory(graphDb, "users") {
@Override
protected void initialize(Node createdNode, Map<String, Object> properties) {
created.setProperty("username", properties.get("username"));
}
};
return factory.getOrCreate("username", username);
}