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

How to get a submap from a node Object?

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

我尝试使用在 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'

如何解决这个问题?

当我 运行 您在我的 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