如果属性是cypher中的数组neo4j,如何列出属性中的每个项目?

时间:2018-06-15 09:13:27

标签: neo4j cypher

我有一个保存属性的节点是一个数组。 节点标签为“Person”,属性名称为“Phone”。 我应该使用原始neo4j中的哪个功能? 或者我应该使用哪种apoc功能?

2 个答案:

答案 0 :(得分:1)

如果您不想返回数组,但每个数组成员都作为单独的记录,则可以使用UNWIND子句。

例如:

MATCH (p:Person {id: 123})
UNWIND p.Phone as phone_number
RETURN phone_number;

答案 1 :(得分:0)

如果它是一个字符串数组(例如)或只是一个常规字符串,那么仅返回单个属性的值(在这种情况下为数组)也没有区别。

我们假设你有以下节点:

(a:Person {Phone: ["Apple iPhone 8", "Samsung Galaxy S6"]})

我们可以看到这是一个具有phone属性的节点,其值为数组。在这种情况下,数组包含两个字符串," Apple iPhone 8"和#34;三星Galaxy S6"。

要返回数组的值,只需以某种方式匹配节点(如果您拥有更多唯一属性,则可以唯一匹配此节点)并返回属性名称,可能如下所示:

match (a:Person)
return a.Phone

您返回的值将是指定为Phone属性值的数组:

["Apple iPhone 8", "Samsung Galaxy S6"]

您不需要内置功能来实现此目的。