Neo4j基于该属性将多个值存储为属性和匹配节点

时间:2017-01-18 08:23:30

标签: neo4j cypher

我有一个标签df %>% mutate(age=as.period(interval(start = birthdate, end = givendate))) %>% .$age %>% .@year %>% mutate(df, age = .) # birthdate givendate age #1 <NA> <NA> NA #2 1978-12-31 2015-12-31 37 #3 1979-01-01 2015-12-31 36 #4 1962-12-30 <NA> NA ,其节点具有某些属性(forename,surname等),我有一个标签Person,其中包含具有某些属性的节点(name,companyNumber等)。现在我需要将属性Company添加到人员节点,这将指示该人员在哪些公司工作。 我的问题是:有没有办法在属性compNumber中放置多个值,例如

compNumber
如果(:Person {forename:John, surname'Smith', compNumber:[001,002,003]}) 节点中的属性WORKS_ATcompanyNumber属性中的某个值匹配,则

以后建立关系Company

或者,将compNumber值存储为单独节点的更好方法是:

compNumber

1 个答案:

答案 0 :(得分:0)

是的,你可以按照你想要的方式做到这一点。在Neo4j中,您可以使用以下命令设置数组属性:

MATCH (n:Person) WHERE 1 IN n.compNumber RETURN n;

您可以使用IN关键字搜索特定节点:

MATCH (n:Company) MATCH (p:Person) WHERE n.companyNumber IN p.compNumber MERGE (p)-[:WORKS_IN]->(n);

然后您可以通过以下方式创建关系:

{{1}}

我认为这个解决方案应该符合您的需求。