Я возвращаю несколько сущностей в запросе Cypher, где некоторые являются единичными, а некоторые могут иметь много. Например, если бы я RETURN name, dob, address
, name
вернул бы один объект, dob
вернет один объект, и addresses
мог вернуть несколько объектов.
Как мне перебрать результирующий набор, чтобы получить правильные данные и собрать их в массив, который имеет смысл? Например:
$array = array(
name = 'name',
dob = 'd/o/b',
addresses = array(
array(
'myData'
),
array(
'myData'
)
)
)
Так далеко, когда я foreach($result as $row)
строка содержит дубликаты для name
а также dob
для каждого отдельного address
,
Это мой запрос Cypher:
MATCH (creator:CreatingUser)-[:creator]-(event:Event), (occurrence:EventSpaceTimeOccurrence)-[:occurrence]-(event)
WHERE creator.id = '1234'
RETURN event, creator, occurrence
Использовать distinct
ключевое слово:
MATCH (creator:CreatingUser)-[:creator]-(event:Event), (occurrence:EventSpaceTimeOccurrence)-[:occurrence]-(event)
WHERE creator.id = '1234'
RETURN DISTINCT event, creator, occurrence
Других решений пока нет …