Neo4j如何使用每个关系的属性过滤器添加多个关系?

时间:2019-01-02 15:12:42

标签: neo4j cypher

MATCH (me)-[post_rel_source:FOLLOWS_TEAM|:FOLLOWS|:FOLLOWS_EVENT*0..1]->(user)

在这种情况下,如何检查所有3个关系的不同“状态”? FOLLOWS_TEAM已接受:1 以下已接受:1 FOLLOWS_EVENT没有任何状态。

如果我添加如下内容,则它不适用于“ FOLLOWS_EVENT”

[post_rel_source:FOLLOWS_TEAM|:FOLLOWS|:EVENTS_OF_ORG*0..1{accepted:1}]

1 个答案:

答案 0 :(得分:1)

[编辑]

此代码段应该有效:

...
MATCH (me)-[r:FOLLOWS_TEAM|:FOLLOWS|:FOLLOWS_EVENT*0..1]->(user)
WHERE
  SIZE(r) = 0 OR
  TYPE(r[0]) = 'FOLLOWS_EVENT' OR
  r[0].accepted = 1
...

注意:由于您的关系模式允许使用长度为0的路径(即meuser是同一节点,并且它们之间没有匹配关系的路径),因此{ {1}}测试检测并接受了这种情况(大概是您想要的)。