2013-06-10 2 views
1

J'utilise Neo4j 1.9 M03 en mode HA, mon défi est de supprimer tous les nœuds et relations ainsi que les index qui sont plus anciens qu'une certaine date. Pour cela, j'ai créé une propriété pour les nœuds et les relations. Pour cela, j'ai créé une propriété pour les nœuds et les relations. La propriété est un horodatage au format "YYMMDD".Supprimer les anciens nœuds et relations avec Cypher dans Neo4j 1.9

Je suis en train d'utiliser la requête suivante Cypher pour effectuer l'opération mentionnée ci-dessus:

START n0=node(0), nx=node(*) 
MATCH n0-[r0?]-(), nx-[rx?]-() 
WHERE nx <> n0 AND HAS (nx.datestamp) AND nx.datestamp <= yyyymmdd 
OR HAS (rx.datestamp) AND rx.datestamp <= yyyymmdd 
DELETE r0,rx,nx 

Cette requête ne fonctionne pas l'opération que je désire. Que puis-je faire de mal ici?

+0

Votre date est-elle une chaîne? – Luanne

+0

Non, est un entier – x13

Répondre

0
START rx=rel(*) 
WHERE HAS (rx.datestamp) AND rx.datestamp <= yyyymmdd 
DELETE rx; 

Vous devez vous assurer que les nœuds que vous voulez supprimer ne pas avoir de relations à gauche, soit filtrer ceux ou vous supprimez les plus

START nx=node(*) 
WHERE HAS (nx.datestamp) AND nx.datestamp <= yyyymmdd 
AND NOT((nx)--()) 
DELETE nx; 
+0

Merci beaucoup Michael. Cependant, l'espace occupé dans la base de données Neo4j reste le même. Est-ce que les nœuds et les relations sont même supprimés? Dans l'administrateur web de Neo4j, j'exécute la requête Neo4j Cypher pour compter tous les nœuds et relations supprimés qui sont plus anciens que certains datastamp et le résultat de la requête est 0 nœuds et/ou 0 relations. – x13

+0

Michael les propriétés de noeud/relation n'ont pas été supprimées avec cette requête de chiffrement à droite? Comment puis-je supprimer aussi les propriétés de noeud/relation? La métrique "utilisation du disque de base de données" continue d'augmenter même après la suppression des nœuds/relations. Merci d'avance – x13

1

Vous pouvez essayer celui-ci

START n=node(*) 
MATCH n-[r?]-() 
WHERE (n.datestamp? <= yyyymmdd AND r.datestamp? <= yyyymmdd) 
DELETE r,n 
+0

Cela semble bien mais la métrique "utilisation du disque de base de données" continue d'augmenter même après la suppression des nœuds/relations ... – x13

Questions connexes