У меня есть следующие paramObj и dbQuery
paramObj = {
email: newUser.email,
mobilenumber: newUser.telephone,
password: newUser.password,
category: newUser.category,
name: newUser.name,
confirmuid: verificationHash,
confirmexpire: expiryDate.valueOf(),
rewardPoints: 0,
emailconfirmed: 'false',
paramVehicles: makeVehicleArray,
paramVehicleProps: vehiclePropsArray
}
dbQuery = `CREATE (user:Person:Owner {email:$email})
SET user += apoc.map.clean(paramObj,
['email','paramVehicles','paramVehiclesProps'],[])
WITH user, $paramVehicles AS vehicles
UNWIND vehicles AS vehicle
MATCH(v:Vehicles {name:vehicle})
CREATE UNIQUE (user)-[r:OWNS {since: timestamp()}]->(v)
RETURN user,r,v`;
Затем я попытался выполнить
commons.session
.run(dbQuery, paramObj)
.then(newUser => {
commons.session.close();
if (!newUser.records[0]) {........
Я получаю
Error: {"code":"Neo.ClientError.Statement.SyntaxError","name":"Neo4jError"}
, который не указываетменя где угодноМожет кто-нибудь сказать мне, что я здесь делаю не так?
Это первый раз, когда я использую формат запроса .run(dbQuery, paramObj)
, но этот формат имеет решающее значение для моего варианта использования.Я использую сообщество Neo4j 3.4.5 с установленным плагином apoc.
Хорошо ... поэтому я следовал предложению @inversFalcon для тестирования в браузере и нашел следующие параметры и запрос, которые точно соответствуют приведенным выше:
:params paramObj:[{ email:"xyz123@abc.com", mobilenumber:"8711231234",password:"password1", category:"Owner",name:"Michaell",vehicles:["Toyota","BMW","Nissan"],vehicleProps: [] }]
и запрос
PROFILE
CREATE (user:Person:Owner {email:$email})
SET user += apoc.map.clean($paramObj, ["email","vehicles","vehicleProps"],[])
WITH user, $vehicles AS vehicles
UNWIND vehicles AS vehicle
MATCH(v:Vehicles {name:vehicle})
MERGE (user)-[r:OWNS {since: timestamp()}]->(v)
RETURN user,r,v;
Теперь я получаю Neo.ClientError.Statement.TypeError: Невозможно выполнить `List {Map {name -> String (" Michaell ")), транспортные средства -> List {String ("Toyota"), String ("BMW"), String ("Nissan")}, .......
Я также вернулся к neo4j 3.2 (re: предыдущий постМарк Нидхэм) и получил ту же ошибку.