У нас есть статья базы знаний по выполнению пересечения совпадений , в которой рассматриваются запросы такого типа.
Используя первый подход в статье, нам нужно выполнить сопоставление с шаблоном с учетом входных данных (лиц, которые владеют данными автомобилями), затем подсчитать количество автомобилей из этого набора, которые были сопоставлены на человека, а затем сравнить эток числу автомобилей во входном списке и тому, где эти цифры совпадают, вы нашли свою личность:
WITH ['Car 3', 'Car 4'] as cars
MATCH (p:Person)-[:OWNS]->(c:Car)
WHERE c.name in cars
WITH p, size(cars) as inputCnt, count(DISTINCT c) as cnt
WHERE cnt = inputCnt
RETURN p
У вас должен быть индекс: Автомобиль (имя) для этого, чтобы запрос мог использоватьпоиск по индексу, чтобы найти начало: Авто узлы быстро.