neo4j中的双向数据建模问题

时间:2014-12-26 03:10:15

标签: neo4j data-modeling key-value bidirectional-relation

我有两个节点,A和B, 与B和B的谈话与A,(A) - [:talksTo] - (B)

进行对话

A具有朝向B的情绪值,B具有朝向A的情绪值。

所以存在问题,我需要A到B关系来存储B到A关系也想要存储的值(相同的键)。

所以我会尝试进行诸如MATCH(A:person) - [:talksTo] - (B:person)之类的查询,其中A.sentiment< -2返回A;

因此,A对B的情绪与B对A的情绪不同,因此需要分离。

我试图制作唯一的密钥名称以指定方向 - 但这会使查询变得困难,除非我可以使用外卡查询:...其中A.Asentiment< -2将被查询为......其中A. *情绪< -2

我能想到这样做的另一种方法是制作两个不同的图形,1)与B图形对话,B与A图形对话......但这会使查询变得棘手,因为我可能会回到一个以上的节点单节点查询或者如果我必须更新单个节点密钥:value to other else。我希望每个人都有一个节点名称。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我不知道这是一个解决方案,但我认为我不够理解,所以它可能是更好理解的陪衬:

MATCH (A:Person)-[dir1:talksTo]->(B:Person), (A)<-[dir2:talksTo]-(B)
WHERE dir1.sentiment < 2
RETURN A, B