这是否适合使用Neo4j中的标签和约束?

时间:2014-06-04 16:44:51

标签: neo4j

我使用的是Neo4j 2.1.1,在服务器模式下运行,并通过Java API从REST API访问。我上次使用1.8,所以我有点生疏,并试图弄清楚新功能......

我正在建立Twitter用户的图表,以查看谁跟随谁。每个节点都有一个用户ID'财产,需要是独一无二的。用户属于三个类别中的一个,A,B或C.我可能会查询类似于"向我显示关注类型A用户的类型C用户"

我最初的计划是创建标记为A,B和C的节点,并插入' member_of'每种类型的用户的关系 - 然后我读到标签,这看起来像一个胜利,但后来我不确定 - 我会为A,B和C创建标签,但我希望用户标识是在所有类别中都是唯一的,不仅适用于特定类型的用户。

标签是我的答案吗?我的元节点'?我觉得我错过了什么。

2 个答案:

答案 0 :(得分:1)

是。标签是你的答案。您将为每个用户创建一个单独的节点,每个节点都有自己的标签(一个节点也可以有多个标签)。基本上,您使用标签标记每个节点。您没有创建一个标签层,您可以在其下创建一些节点。因此,您的用户ID将在全球保持唯一。 希望能帮助到你!

答案 1 :(得分:1)

试试这些

// create a unique constraint
CREATE CONSTRAINT ON (u:User) ASSERT u.userid IS UNIQUE;

// create a user

CREATE (u:User:A {userid:124});

// get or create a user
MERGE (u:User {userid:124}) ON CREATE SET u:A, u.created = timestamp();