Как получить подкарту из узла Object? - PullRequest
0 голосов
/ 24 июня 2019

Я пытаюсь получить подкарту узла человека в Neo4j, используя процедуры apoc.

Я попытался использовать функцию apoc.map.submap (), которую я нашел в документации по neo4j apoc.Мой запрос на шифрование выглядит следующим образом:

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 голосов
/ 24 июня 2019

Когда я запускаю ваш запрос на Neo4j, я не получаю неизвестную ошибку процедуры.Скорее всего, вы не установили плагин APOC на свой сервер Neo4j.Вот как это сделать: 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
...