Как написать следующий запрос cyhper без ошибок?neo4j "try", чтобы создать связь с узлом
Match (n: {id :"someid"}),(x {id:"otherId"})
OPTIONAL MATCH (n)-[]->(t:Other)
merge x-[]->(t)`
Проблема заключается в том, что существует Cance, что t
будет аннулирована и плохо получаю сообщение об ошибке: Expected to find a node at t but found nothing Some(null)
это полный запрос:
MATCH (traveler:${labels.N_TRAVELER} {id: {traveler}.id})
OPTIONAL MATCH (traveler)-[r:${labels.R_TRAVELER_LATEST_EVENT}]->(prev:${labels.N_EVENT})
OPTIONAL MATCH (interest:${labels.N_INTERESTS}) WHERE interest.id IN {interests}
DELETE r
MERGE (traveler)-[:${labels.R_TRAVELER_LATEST_EVENT}]->(trip:${labels.N_TRIP_EVENT})
ON CREATE SET trip={trip}
MERGE (traveler)-[:${labels.R_TRAVELER_WRITE_TRIP}]->(trip)
MERGE (trip)-[:${labels.R_TRIP_INTEREST}]->(interest)
WITH trip, collect(prev) as prevs
UNWIND prevs as prev
MERGE (trip)-[:${labels.R_EVENT_PREV_EVENT}]->(prev)
WITH trip
RETURN properties(trip) as trip`
все labels.
просто Строки .. {interests}
представляет собой массив идентификаторов
В основном им привязка для создания связанный список поездок
«UNWIND» часть - это то, что мне нужно и ее работа ... но нет более элегантного решения? как merge, где t не является нулевым или что-то вроде этого? – tubu13
В настоящее время Cypher не хватает условностей, я уверен, что он придет. Я боюсь, что сейчас я не вижу ничего более элегантного. –
Что-то не так. Связь создается, но после этого im делает 'с n return n' и возвращает пустые .. любые идеи? – tubu13