2013-03-26 4 views
0

Je travaille sur la compréhension de l'utilisation des listes chaînées pour améliorer les performances et créer des flux d'activité sur Neo4j .. Je travaille toujours sur l'apprentissage de Cypher, donc j'ai une question .. J'ai trouvé quelques exemples des listes liées, mais j'ai besoin de listes avec des exemples plus grands pour finalement mettre tous les morceaux ensemble dans ma tête ..Neo4j liste liée - plusieurs nœuds

J'ai utilisé ce code de grepcode et l'ai trouvé plus utile que l'exemple dans le manuel Neo4j . Pourtant, je suis encore un peu confus .. Quelqu'un peut-il le modifier pour avoir sept nœuds avec sept éléments dans la liste liée, puis insérer un nœud sur le devant de celui-ci?

Oui, j'essaye de mettre la dernière mise à jour de statut en haut de la liste liée. Cet exemple ne le fait pas vraiment, mais il est proche .. donc à la recherche de mods .. Non, je ne suis pas encore en train de coder, essayant toujours de maîtriser Cypher d'abord - je continuerai à l'étudier pour les deux prochaines semaines .. Avoir le côté Ruby on Rails qui fonctionne ... juste besoin de comprendre les listes chaînées utilisées avec Cypher/Neo un peu mieux.


CREATE zero={name:0,value:0}, two={value:2,name:2}, zero-[:LINK]->two-[:LINK]->zero 

==== zero ==== 

MATCH zero-[:LINK*0..]->before, 
after-[:LINK*0..]->zero, 
before-[old:LINK]->after 
WHERE before.value? <= 1 AND 
1 <= after.value? 
CREATE newValue={name:1,value : 1}, 
before-[:LINK]->newValue, 
newValue-[:LINK]->after 
DELETE old 
==== zero ==== 
MATCH p = zero-[:LINK*1..]->zero 
RETURN length(p) as list_length 

Ce que je suis en train de faire dans mon esprit est de comprendre les avant après et zéro ensembles de données - je presque ont, mais veulent voir comment cela se fait sur un ensemble avec plus de deux nœuds de départ afin d'éliminer toute confusion

Merci!

Répondre

0

Le nœud en face est spécial car il n'a pas de relation de liaison entrante. Habituellement, vous gardez aussi la connexion au nœud principal quelque part, il s'agit donc de remplacer ce lien vers le nœud principal et de déplacer le nœud principal un peu plus loin. Quelque chose comme ceci:

start user=node:node_auto_index(user="me") 
match user-[old:MESSAGES]->head 
delete old 
create new_heads = { title: "Title", date : 2348972389, text: "Text" }, 
user-[:MESSAGES]->new_head-[:LINK]->head 
+0

Merci pour la réponse .. cela semble un peu différent des autres exemples sur les listes liées, mais même ainsi sera utile .. Je vais répondre dans un moment pour d'autres questions. –

Questions connexes