Не удается отфильтровать агрегированный запрос Neo4j по свойству - PullRequest
0 голосов
/ 22 марта 2020

У меня есть запрос, суммирующий узлы и отношения в виде групп, и я не могу заставить его фильтроваться по свойству. Запрос ниже:

CALL apoc.nodes.group(['*'],["workspace"]) YIELD nodes, relationships
Unwind nodes as node
unwind relationships as rel
WITH coalesce(node) as result, rel
return result

Результат показывает, что Result Image

Но я не могу получить доступ к result.workspace, он показывает мне [] пустые массивы. Я хочу иметь возможность фильтровать с result.workspace = '100'

РЕДАКТИРОВАТЬ: я добавил новый скриншот, который показывает результат запроса. Я пытаюсь добиться, чтобы получить только серые, которые имеют свойство 'workspace': '100' (это может быть, например, '99' в качестве моего запроса), а не другие, как зеленые, которые 'workspace': '99' или с разные свойства.

Изображение

EDIT2: с этим запросом ничего не возвращается

CALL apo c .nodes.group (['*'], [ 'workspace']) YIELD узлы UNWIND узлы как узел WITH node WHERE node.workspace = '100' RETURN node

Изображение после запроса

ЗАДАЧА РЕШЕНА с помощью запроса ниже:

CALL apo c .nodes.group (['*'], ['workspace']) Узлы YIELD, отношения UNWIND как узлы UNWIND, отношения как rel WITH, rel WHERE apo c. any.properties (node) .workspace = '100' RETURN node, rel

apo c .any.properties () работает на виртуальных узлах так же, как они являются реальными узлами.

1 Ответ

0 голосов
/ 24 марта 2020

[ОБНОВЛЕНО]

Это вернет только те узлы группы, которые имеют значение свойства workspace '100':

CALL apoc.nodes.group(['*'],["workspace"]) YIELD nodes
UNWIND nodes AS node
WITH node
WHERE apoc.any.property(node, 'workspace') = '100'
RETURN node

ПРИМЕЧАНИЕ. Необходимо использовать apoc.any.property функция для получения значения свойства из виртуального узла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...