如何在neo4j中向属性添加多个值

时间:2015-06-15 09:44:40

标签: java neo4j

我是neo4j的新手并试图将多个值添加到节点的属性中。如何做?

 create (e:Employee{name:"Sam",languages:["C","C#"]})

试过这个,但没有找到任何向属性添加多个值的正确方法。

2 个答案:

答案 0 :(得分:1)

属性不能包含对象值。如果您希望在language上存储多个属性,并且这些属性都属于该语言而不属于任何其他实体,那么您应该将Language建模为节点。如果需要,您还可以存储员工与语言之间关系的属性。

然后你会得到类似的东西:

create (l:Language {name:"C", otherProperty:"property value"})
create (e:Employee {name:"Sam"})
create (e)-[:SPEAKS {level:"Fluent"}]->(l)

答案 1 :(得分:1)

实际上,您可以在属性中包含数组值。您应该能够创建它们:

CREATE (n:Node { color: ['Red', 'Blue']})
RETURN n

在你的情况下:

CREATE (e:Employee { name:"Sam",languages: ["C", "C#"]})
RETURN e

工作得很好(你可以在http://console.neo4j.org/中查看)

请记住,数组中的所有值必须是相同的类型,只能是字符串或整数等。您可以在此处找到更多信息 - > http://neo4j.com/docs/stable/rest-api-property-values.html

然而,鉴于CC#Sam知道的语言,这不是针对该特定示例的最佳方法,您应该将它们作为Sam指向的不同节点{1}}通过某种Knows关系。