gpt4 book ai didi

Neo4j 批量更新数据

转载 作者:行者123 更新时间:2023-12-05 01:19:43 26 4
gpt4 key购买 nike

如何在 neo4j cypher 中更新多个节点?

现在我正在尝试这样做:

MATCH (user151325288158:User{userId:151325288158}),
(user88245:User{userId:88245})
SET user151325288158.balance=2902833.4219789803
SET user88245.balance=146701.0299999991
RETURN user151325288158.balance,user88245.balance;

但是这里我有一个问题,如果数据库中没有这样的用户,就不会更新任何人。另一个问题是性能,这样的查询很慢。

有什么方法可以进行这种批量更新吗?

最佳答案

假设您在映射/字典数组中有一对userId和新的balance值,如下所示:

[
{
"userId": 151325288158,
"balance": 146701.09
},
{
"userId": 887436512344,
"balance": 22453.34
},
{
"userId": 873927654232,
"balance": 300002.22
}
]

您可以将此数组作为参数传递给 Cypher 查询以在 userId 上进行 MATCH 并像这样更新 balance 属性:

WITH {data} AS pairs
UNWIND pairs AS p
MATCH (u:User) WHERE u.userId = p.userId
SET u.balance = p.balance

关于Neo4j 批量更新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38149000/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com