Так что, если я правильно понимаю, вам нужен узел: Abs для каждой отдельной отметки времени в узлах действия.Для этого нам нужно агрегировать узлы действия по отметке времени (поэтому вы получите только одну строку на отдельную отметку времени), затем СОЗДАТЬ узел: Abs, а затем выполнить FOREACH, чтобы создать отношения с новым узлом.
MATCH (act)--(obj)
WHERE obj.filename IN ["6013", "6005"]
WITH act.timestamp as timestamp, collect(DISTINCT act) as acts
CREATE (a:Abs{name: 'SigEvent'}) // created per row, so per distinct timestamp
FOREACH (act in acts | CREATE (act)-[:LINK]->(a))
Я удалил часть шаблона сопоставления в seconds
, так как он не выглядел так, как если бы вы его использовали.
Однако в этом запросе есть серьезная проблема.Это сопоставление не может использовать поиск по индексу, так как вы не используете метки в шаблоне сопоставления, поэтому выполняется сканирование всех узлов, что приведет к ужасной производительности по мере роста графика.Вам по крайней мере нужен ярлык на одном из них.Похоже, вы намереваетесь выполнить поиск индекса по obj.filename
, поэтому добавьте соответствующую метку к obj
в вашем шаблоне MATCH, чтобы можно было использовать ваш индекс (если вы его создали).