2013-07-22 4 views
0

Как создать уникальный узел в neo4j? У меня есть модель пользователя, и имеет свойство, как UserID, serName, EMailID, Mobile, Address, Zipcode т.д ...создать уникальный узел или создать уникальный индекс

Я хочу, чтобы создать уникальный узел для вышеуказанного пользователя. I есть UserID, UserName, EMailID, Mobile как уникальное поле. поэтому, когда тот же UserID или любое упоминаемое здесь поле пытается снова ввести его, он должен быть возвращен как ошибка.

Это возможно?

ответ

1

Я предполагаю, что это для стабильной версии neo4j (1.9), поскольку 2.0 действительно меняет порядок индексирования.

Вы говорите, что ваш User Узел будет иметь несколько свойств, каждая из которых уникальна, будут ли они использованы в качестве составного ключа или будет использоваться только имя пользователя в качестве ключа?

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); 
} 
+0

спасибо @ Николаю за ваш ответ. У меня есть некоторые уникальные свойства в моей модели пользователя (например, UserID, UserName, EMailID, MobileNo). Эти поля никогда не повторяются внутри моего пользователя. поэтому я не могу сделать это композитным ключом. И еще одна вещь, я использую node.js, поэтому я ищу код javascript, чтобы сделать это. у тебя есть идеи? –

+0

Взгляните на http://docs.neo4j.org/chunked/stable/rest-api-unique-indexes.html. REST API, доступный из javascript. –

Смежные вопросы