Я использую графическую базу данных Neo4J.
У меня есть две метки узла:
- : Person (users)
- : Event (события, созданные пользователями: с местом, startDate, гости, ...)
И 2 типа отношений:
- : IS_INVITED_TO
- : IS_INVITED_BY
Для простоты я упростил запрос до минимума.
Вот запрос:
MATCH (user:Person {guid: $userGuid})-[:IS_INVITED_TO]->(event:Event)
WITH user, event
MATCH (event)<-[:IS_INVITED_TO]-(user)-[:IS_INVITED_BY]->(invitor:Person)
WITH user, event, collect(invitor) AS invitors
RETURN {properties: properties(event), invite_by_nodes: invitors};
Я хочу найти все события, на которые приглашен текущий пользователь(строка 1: работает нормально).
Для каждого события я хочу знать, кто меня пригласил (строка 3: не работает, он возвращает приглашенных, которые пригласили меня на другие события, а не на текущее).
Я почти уверен, что шаблон строки 3 неверен: он находит (пользователь), но игнорирует (событие).Итак, запрос возвращает всех приглашенных, которые пригласили меня на событие (а не на текущее событие).
Я также пытался запустить loooooot вещей (3 дня потеряли ..):
- UNWIND собирать (событие) AS событие (после первого MATCH & WITH): работатьс текущей итерацией события
- Добавьте предложения WHERE, чтобы принудительно найти текущее событие
- Я искал везде документацию Neo4J / stackoverflow
Помощь будет очень признательна!Большое спасибо: -)