Вы можете использовать процедуру apo c .help , чтобы увидеть сигнатуру функций APO C. Например, результат этого оператора:
CALL apoc.help("apoc.refactor.setType")
:
╒═══════════╤══════════════════╤══════════════════╤══════════════════╤═══════╤════════╕
│"type" │"name" │"text" │"signature" │"roles"│"writes"│
╞═══════════╪══════════════════╪══════════════════╪══════════════════╪═══════╪════════╡
│"procedure"│"apoc.refactor.set│"apoc.refactor.set│"apoc.refactor.set│null │null │
│ │Type" │Type(rel, 'NEW-TYP│Type(relationship │ │ │
│ │ │E') change relatio│:: RELATIONSHIP?, │ │ │
│ │ │nship-type" │newType :: STRING?│ │ │
│ │ │ │) :: (input :: INT│ │ │
│ │ │ │EGER?, output :: R│ │ │
│ │ │ │ELATIONSHIP?, erro│ │ │
│ │ │ │r :: STRING?)" │ │ │
└───────────┴──────────────────┴──────────────────┴──────────────────┴───────┴────────┘
Итак, apoc.refactor.setType
имеет следующие переменные: input
, output
и error
.
Этот запрос должен работать у вас:
MATCH (user:Owner {email: "xyz@mymail.com"})-[r:OWNS]->(v:Vehicles {name:"Chevy"})
WHERE r.model = "Silverado" OR NOT EXISTS(r.model)
CALL apoc.refactor.setType(r, 'OWNED') YIELD output
RETURN user, output AS r, v