У меня есть запрос шифрования для создания узлов в пакете.
Запрос
UNWIND {batch} as row MERGE(m:TempEncounter {encounterId: row.encounterId}) ON CREATE SET m+=row
WITH m,row MATCH (u:Users {userId: row.creator }) MERGE (m)-[:USERS]->(u)
WITH m,row MATCH (l:Location {locationId: row.locationId }) MERGE (m)-[:LOCATION]->(l)
WITH m,row MATCH (p:Patient {patientId: row.patientId }) MERGE (m)-[:PATIENT]->(p)
WITH m,row MATCH (e:EncounterType {encounterTypeId: row.encounterType }) MERGE (m)-[:ENCOUNTERTYPE]->(e)
WITH m,row MATCH (u2:Users {userId: row.voidedBy }) MERGE (m)-[:USERS]->(u2)
return m;
Проблема с приведенным выше запросом шифра состоит в том, что предположим, что locationId равен NULL для строки 1 (но может не иметь значения для другихстрок), тогда отношения, начинающиеся с LOCATION и USERS не будут созданыХотя другие свойства могут отображаться как (voidedBy, enounterType)
Как я могу улучшить свой запрос на шифрование, чтобы он пропускал создание определенных отношений, если их нет в строке, но создавал другие, присутствующие в строке.
Я использую этот запрос для увеличения моих узлов в neo4j.Производительность здесь требуется