Показывать только узлы, которые имеют определенные свойства в отношениях - PullRequest
0 голосов
/ 21 июня 2019

Я новичок в neo4j, и я борюсь с задачей создать простой фильтр.

Я поиграл и нашел оператор in, но в нем отображается только каждый "Персона", где найдено хотя бы одно совпадение,Я хочу перечислить только «Персона», включающая все свойства.

MATCH (p:Person)-[l:LIKES]->(f:Food) WHERE f.name in ["Spaghetti","Cheese","Chicken","Eggs"]
RETURN p

Результат: Показать только «Персона», например «Спагетти», «Сыр», «Курица», «Яйца»,...

1 Ответ

1 голос
/ 21 июня 2019

У нас есть статья базы знаний по выполнению пересечения совпадений , которая должна решить эту проблему.

Применительно к вашему делу, вот один из подходов, которые вы можете использовать:

WITH ["Spaghetti","Cheese","Chicken","Eggs"] as foods
MATCH (p:Person)-[:LIKES]->(f:Food) 
WHERE f.name in foods
WITH p, foods, count(f) as foodsLiked
WHERE foodsLiked = size(foods)
RETURN p
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...