2013-03-26 111 views
0

我正在理解如何使用链表来提高性能并在Neo4j上创建活动提要。仍然在学习Cypher,所以我有一个问题..我找到了一些示例的链表,但我需要更大的例子列表,最后把所有的东西放在一起在我的脑海里..Neo4j链表 - 多个节点

我用这个代码从grepcode,并发现它比在Neo4j手册中的例子更有帮助。然而,我仍然有点困惑..有人可以修改它有七个节点与七个项目在链表中,然后插入一个节点在它的前面?

是的,我试图把最新的状态更新在链接列表的顶部。这个例子并不是真的那么做,但它很接近..所以寻找一些mods ..不,我还没有真正编码,仍然试图首先掌握Cypher - 将在接下来的两周继续研究它。 。Ruby on Rails方面工作..只需要理解与Cypher/Neo一起使用的链表更好一点。


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 

我想要在我的脑海做的是了解之前之后和零数据集 - 我几乎拥有它,但想看看它是如何在设置完成与两个以上的起始节点,以清除任何混淆

谢谢!

回答

0

前面的节点是特殊的,因为它没有输入链接关系。通常你也可以保持到头节点的连接,所以这是把这个链接替换成头节点,并将头节点移动一步。事情是这样的:

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

感谢您的答复..这听起来比上链表的其他例子有点不同,但即便如此,将有助于..我会在一段时间进一步queestions回复.. – 2013-03-27 21:19:44