检索 Neo4j
中特定节点的所有属性是在许多查询中使用的。但是,如何检索不包括特定属性,标签和ID的节点的属性?
如果以下查询是由Java程序执行的,成功连接后:
MATCH (n: `Group_A`: `Topper`) RETURN n
现在,然后在屏幕上打印的输出为:
{"id":4, "labels":["Group_A", "Topper"], "name":"tom", "shift":"morning", "salary":"5000", "blood_group":"AB", "specialisation":"C#"}
我期望节点的所有属性(n: Group_A
: Topper
(,不包括属性类型及其值,与节点关联的标签。因此,屏幕中所需的输出看起来像:
{"name":"tom", "shift":"morning", "blood_group":"AB", "specialisation":"C#"}
==================================================================================[N.B. - 我正在使用neo4j jar文件,其中我要触发 Neo4j
的查询并使用 println()
方法获得结果。我的Neo4j
在后台运行。在Neo4j
的成功连接中,所有这些都可以正常工作,但我是对Neo4j
查询的搜索。]
[更新]
要避免获得节点元数据(在客户端结果中(,您不应直接返回节点。相反,您可以使用properties((函数仅获取地图中的属性:
MATCH (n: `Group_A`: `Topper`)
RETURN PROPERTIES(n) AS props
但是,如果您也想避免返回某些属性(例如"薪金"(,则可以使用apoc.map.removekey((函数来删除它们。由于该功能返回地图而不是节点,因此它也不包含任何元数据(因此,在这种情况下,您不需要使用PROPERTIES()
函数(。例如:
MATCH (n: `Group_A`: `Topper`)
RETURN apoc.map.removeKey(n, 'salary') AS props
您可以使用地图投影。
所有节点属性(无元数据(
MATCH (n: `Group_A`: `Topper`)
RETURN n {.*}
特定属性
MATCH (n: `Group_A`: `Topper`)
RETURN n {.prop1, .prop2}