如何从节点对象获取子图?

时间:2019-06-24 15:37:04

标签: neo4j cypher neo4j-apoc

我正在尝试使用apoc程序在Neo4j中获取人节点的子图。

我尝试使用neo4j apoc文档中找到的apoc.map.submap()函数。我的密码查询如下:

MATCH (p:person)
    RETURN  apoc.map.submap(p{.*}, ["name", "id"],null, true)

预期结果:

{
    "name" : "Tom",
    "id" : 23
}

输出:

Neo.ClientError.Statement.SyntaxError:未知函数'apoc.map.submap'

如何解决此问题?

1 个答案:

答案 0 :(得分:0)

当我在Neo4j上运行您的查询时,我没有收到未知的过程错误。 您很可能没有在Neo4j服务器上安装APOC插件。方法如下:Apoc github

编辑:

我尝试使用自己的数据库:

MATCH (p:User) return apoc.map.submap(p{.*}, ["username", "uuid"], null, true)

输出:

{
    "uuid": "1d69d...",
    "username": "admin......"
}

如果无法使其正常运行,则可以尝试执行以下操作(与请求的输出不完全相同):

MATCH (p:User) WITH apoc.map.values(p{.*}, ["username", "uuid"], true) AS values UNWIND values[0] as username UNWIND values[1] as uuid return username, uuid