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

g6ll5ycj  于 2021-06-09  发布在  Redis
关注(0)|答案(2)|浏览(457)

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

332nm8kg

332nm8kg1#

可以使用merge子句来防止插入重复数据。
下面是从现有数据中删除重复记录的查询

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

q35jwt9p2#

如果您的代码由一系列create命令组成(无论是通过cypher还是redisgraph客户机),那么运行两次将复制所有数据。这并不是说键存储两个图;相反,它是一个图,每个实体都是重复的。
如果要替换现有图形,应首先删除现有图形。可以使用redis命令删除图形: DEL [graph key] 或redisgraph命令: GRAPH.DELETE [graph key] 两者在功能上完全相同。
相反,如果您想更新现有的图形而不引入重复的图形,则应该使用redisgraph文档中描述的merge子句。

相关问题