Это когда вы впервые создаете базу данных (т.е. записи не были отсортированы для запуска) или эта запись появляется позже, и вы пытаетесь обновить / вставить новую запись? Если я правильно понимаю, вы хотите вставить узел в цепочке для журнала. Как насчет
EDIT : включено дополнительное ограничение, чтобы убедиться, что при сопоставлении цепочки найден один набор узлов, между которыми можно вставить новую запись
CREATE (eInsert:LogEntry:NewEntry {date: Date('2020-03-18')})
WITH eInsert
MATCH (log:Log {id: "log1"})
WITH log, eInsert
MATCH (log)-[:PREV_ENTRY*]->(e1)-[oldLink:PREV_ENTRY]->(e2:LogEntry)
WHERE e2.date < eInsert.date
AND e1.date >= eInsert.date
WITH e1, e2, eInsert, oldLink
CREATE (e1)-[:PREV_ENTRY]->(eInsert)-[:PREV_ENTRY]->(e2)
DELETE oldLink
Это должно работать, но для полноты вот сценарий, который я использовал для создания цепочки образцов
CREATE (log:Log {id: 'log1'})
CREATE (e1:LogEntry {date: Date('2020-03-30')})
CREATE (e2:LogEntry {date: Date('2020-03-28')})
CREATE (e3:LogEntry {date: Date('2020-03-23')})
CREATE (e4:LogEntry {date: Date('2020-03-17')})
CREATE (e5:LogEntry {date: Date('2020-03-09')})
CREATE (log)-[:PREV_ENTRY]->(e1)
CREATE (e1)-[:PREV_ENTRY]->(e2)
CREATE (e2)-[:PREV_ENTRY]->(e3)
CREATE (e3)-[:PREV_ENTRY]->(e4)
CREATE (e4)-[:PREV_ENTRY]->(e5)