如何防止redisgraph中的数据重复?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何防止redisgraph中的数据重复?相关的知识,希望对你有一定的参考价值。

我写了一个代码来存储redisgraph中的图形,最初它存储的是单个图形,但如果我第二次执行相同的代码,那么它就会在数据库中存储相同的图形,而不会替换之前的图形。最初它存储的是单个图形,但如果我第二次执行相同的代码,那么它就会在数据库中存储相同的图形,而不会替换之前的图形。所以,现在我在数据库中的一个键中得到了两个相同的图形,我不想有任何重复的图形或任何重复的节点,这意味着如果我再次执行相同的代码,它应该替换之前的图形。

答案

如果你的代码由一系列CREATE命令组成(无论是通过Cypher还是RedisGraph客户端之一),运行两次就会重复你所有的数据。这并不是说键存储了两个图,而是说,它是一个图,每个实体都会重复。

如果你想替换一个现有的图形,你应该先删除现有的图形。你可以使用Redis命令删除一个图。

DEL [graph key]

或RedisGraph命令。

GRAPH.DELETE [graph key]

两者在功能上是相同的。

相反,如果你想更新一个现有的图而不引入重复的图,你应该使用MERGE子句,如下所述 在RedisGraph文档中.

另一答案

你可以使用MERGE子句来防止插入重复的数据。

以下是删除现有数据中重复记录的查询方法。

MATCH (p:LabelName)
WITH p.id as id, collect(p) AS nodes 
WHERE size(nodes) >  1
UNWIND nodes[1..] AS node
DELETE node

以上是关于如何防止redisgraph中的数据重复?的主要内容,如果未能解决你的问题,请参考以下文章

如何防止在方向更改时重新创建片段寻呼机中的片段?

当我回到片段时防止重复项目

RedisGraph-benchmark: 使用LDBC SNBredisgraph-bulk-loader和hiredis测试RedisGraph性能

如何防止在 Android 片段/活动中意外退出应用程序?

如何从片段 KOTLIN 中调用意图 [重复]

使用导航控制器按下后退按钮后,如何防止先前的片段出现?