neo4j - 如何用密码替换字符串数组中的条目
问题描述
我有一个像这样的字符串数组属性:
["name1", "name2", "name3", "name2", "name4"]
我想用“name5”替换这个数组中的“name2”:
["name1", "name5", "name3", "name5", "name4"]
到目前为止,我想出了这样的查询:
MATCH (parent)-[rel]->(child)
WHERE 'name2' IN rel.names
SET rel.names = [x IN (rel.names+['name5']) WHERE x<>"name2"]
这几乎是我想要的:
["name1", "name3", "name4", "name5"]
这个查询的问题很明显——它只是静态地添加了一次“name5”,而不检查“name2”在数组中的频率。例如,如果我有n 次“name2”,则查询只添加一个“name5”而不是 n 次。
如果没有“where 子句”,则查询会将“name5”添加到甚至不包含“name2”的数组中。正确的方法应该是查询应该找到 0 次“name2”并添加 0 次“name5”。所以不需要 where 部分。您将如何解决问题,我的解决方法是否正确?
解决方案
这应该有效:
MATCH (parent)-[rel]->(child)
WHERE 'name2' IN rel.names
SET rel.names = [x IN rel.names | CASE WHEN "name2" = x THEN "name5" ELSE x END]
推荐阅读
- java - 尝试使用 JPA 将数据插入 MySQL 数据库时,我被抛出异常:列 'billing_address' 不能为空
- mysql - 使用 between 和 Instant 的 JPA 查询不起作用
- apache - 配置 httpd.conf 后在 .htaccess 上设置重定向失败
- linux - 如何在 Lazarus 中处理 Synaser 超时错误 9997
- elasticsearch - 基于复杂多行条件的聚合 - kibana
- python - 不能通过破坏两个光束同时使两个 LED 灯亮 - 请帮助
- python - 是否可以使用 SkPy 在 Python 中更改 Skype 群聊的群组图标?
- python - 不断收到烧瓶错误GET html 404
- docusignapi - getUsers 的 API 响应不完整
- node.js - 尝试使用 puppeteer 获取一些数据 ny post 请求