在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
),不包括属性类型及其值,id和与该节点关联的标签。
因此,屏幕上所需的输出将如下所示:
{"name":"tom", "shift":"morning", "blood_group":"AB", "specialisation":"C#"}
================================================ ========================
[注: -我正在使用Neo4j jar文件,在其中触发Neo4j
的查询并使用println()
方法获取结果。我的Neo4j
在后台运行。一切顺利完成Neo4j
的工作,但我在搜索Neo4j
查询。]
答案 0 :(得分:0)
[已更新]
为避免获取节点元数据(在客户端结果中),请勿直接返回节点。相反,您可以使用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
答案 1 :(得分:0)
您可以使用地图投影。
所有节点属性(无元数据)
PASS stackoverflow/62736904/utilsModule.test.js (11.51s)
62736904
✓ testing function (3ms)
----------------|---------|----------|---------|---------|-------------------
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
----------------|---------|----------|---------|---------|-------------------
All files | 75 | 100 | 33.33 | 75 |
utilsModule.js | 75 | 100 | 33.33 | 75 | 6-7
----------------|---------|----------|---------|---------|-------------------
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 12.892s
特定属性
MATCH (n: `Group_A`: `Topper`)
RETURN n {.*}