我是neo4j的新手并试图将多个值添加到节点的属性中。如何做?
create (e:Employee{name:"Sam",languages:["C","C#"]})
试过这个,但没有找到任何向属性添加多个值的正确方法。
答案 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
然而,鉴于C
和C#
是Sam
知道的语言,这不是针对该特定示例的最佳方法,您应该将它们作为Sam
指向的不同节点{1}}通过某种Knows
关系。