【问题标题】:Neo4j linked list - multiple nodesNeo4j 链表 - 多个节点
【发布时间】:2013-03-26 19:38:44
【问题描述】:

我正在努力了解如何使用链表来提高性能并在 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

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

谢谢!

【问题讨论】:

    标签: neo4j


    【解决方案1】:

    前面的节点是特殊的,因为它没有传入链接关系。通常您还会在某处保留与头节点的连接,因此这是关于替换此链接到头节点并将头节点移远一步。像这样的:

    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
    

    【讨论】:

    • 感谢您的回复..这听起来与链表上的其他示例有点不同,但即便如此也会有所帮助..我会在一段时间内回复进一步的问题..
    猜你喜欢
    • 2018-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-11
    • 2014-08-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多