如何在neo4j密码中进行多个节点更新?
现在我试着这样做:
MATCH (user151325288158:User{userId:151325288158}),
(user88245:User{userId:88245})
SET user151325288158.balance=2902833.4219789803
SET user88245.balance=146701.0299999991
RETURN user151325288158.balance,user88245.balance;但是在这里我有一个问题,如果DB中没有这样的用户,那么没有人会被更新。另一个问题是性能,这样的查询速度很慢。
有什么方法可以进行这样的大容量更新吗?
发布于 2016-07-01 16:21:44
假设在一个映射/dicts数组中有一对userId和新的balance值,如下所示:
[
{
"userId": 151325288158,
"balance": 146701.09
},
{
"userId": 887436512344,
"balance": 22453.34
},
{
"userId": 873927654232,
"balance": 300002.22
}
]可以将此数组作为参数传递给userId上的userId上的balance查询,并按如下方式更新balance属性:
WITH {data} AS pairs
UNWIND pairs AS p
MATCH (u:User) WHERE u.userId = p.userId
SET u.balance = p.balance 发布于 2020-01-12 00:43:16
通过遵循William Lyon的answer,我能够实现多属性的批处理更新如下:
UNWIND [{id: 123456, name: "John", age: 27}, {id: 789012, name: "Jane", age: 24}] AS updateUser
MATCH (user: User)
WHERE user.id = updateUser.id
SET user += updateUser
RETURN userhttps://stackoverflow.com/questions/38149000
复制相似问题