0

我正在努力了解如何使用链表来提高性能并在 Neo4j 上创建活动提要。仍在学习 Cypher,所以我有一个问题。我找到了一些链表示例,但我需要列表更大的例子最终把所有的部分放在我的脑海里..

我使用了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

我想做的是了解前后数据集和零数据集-我几乎拥有它,但想看看它是如何在具有两个以上起始节点的集合上完成的,以消除任何混乱

谢谢!

4

1 回答 1

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
于 2013-03-27T13:34:16.703 回答