【问题标题】:Neo4j - use a property to start a match (REST, Rails, Neo4j 1.98)Neo4j - 使用属性开始匹配(REST、Rails、Neo4j 1.98)
【发布时间】:2014-10-05 22:35:38
【问题描述】:

我想将节点 ID 存储在节点中以进行缓存(出于性能原因 - 我正在使用可以减慢某些操作的链表)。

类似

start n=node(1432), author=node(n.author_id)
match author-[:WROTE]-book
return book

或者类似的东西

start n=node(1432)
with n.author_id match node(n.author_id)-[:WROTE]-book
return book

现在,这可能是非正统的,但我再次将用户条目的最新 ID 缓存到系统中。当有成百上千的关系时,知道从哪个节点开始而不是遍历它们找到要开始的节点会更快。

我可以使用参数,但我正在使用休息,并且不想必须进行 100 次休息调用才能返回 100 个最新条目。我宁愿 Cypher 一次性解决所有问题。

这可能吗?

【问题讨论】:

    标签: ruby-on-rails rest neo4j cypher


    【解决方案1】:

    当依赖节点 ID 时,请注意它们可能会在删除节点时被回收。

    在 Neo4j 2.1 中,以下应该可以工作:

    START n=node(1432)
    WITH n
    MATCH (other)-[:WROTE]->(book)
    WHERE id(other)=n.author_id
    RETURN book
    

    【讨论】:

    • 谢谢 - 尽量避免使用“where”,因为属性是 neo 中的二等公民。
    猜你喜欢
    • 1970-01-01
    • 2018-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多