我可以在数组中返回节点属性值吗?假设我在neo4j中创建了以下节点:
CREATE (p:Person {name:'Ernesto', gender:'male', town:'Cham'})
字符串
我可以使用以下命令生成密钥:
MATCH (p:Person {name: 'Ernesto'} )
RETURN keys(p)
型
将产生:
[name, gender, town]
型
什么是正确的方法来获得:
['Ernesto', 'male', 'Cham']
型
作为一个集合,更好的是,获得一个Map:
{name: 'Ernesto', gender: 'male', town: 'Cham'}
型
对以节点属性的形式直观地获取此信息不感兴趣,因为它始终包含节点ID。我感兴趣的是一个通用的方法,所以它可以被可变地使用。
谢谢你的帮助
2条答案
按热度按时间bzzcjhmw1#
不幸的是,不可能使用Cypher返回节点的所有属性。会是一个伟大的功能虽然。
你得到的东西接近它:
字符串
这将返回一个字符串表示形式,您可以在应用程序中解析它:
型
sqserrrh2#
要以数组形式获取属性值,请执行以下操作:
字符串
这个查询使用列表解析来迭代节点p的属性,并创建一个包含所有属性值的数组。结果将是['Ernesto','male','Cham']。
要以Map的形式获取特性值,请执行以下操作:
型
在这个查询中,使用APOC库的map.fromPairs函数将属性转换为键值对,然后将其转换为Map。结果将是{name:“Ernesto”,性别:“男性”,城镇:'Cham'}。