2014-10-05 30 views
0

我想將節點id存儲在一個節點中用於緩存目的(出於性能方面的原因 - 我使用的鏈接列表可以減慢一些操作下降)。Neo4j - 使用一個屬性來啓動一個匹配(REST,Rails,Neo4j 1.98)

因此,像

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在一次旅行中解決這一切。

這可能嗎?

回答

0

當依賴節點標識符時,請注意當節點被刪除時它們可能會被回收。

在Neo4j的2.1以下應該工作:

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

謝謝 - 試圖避免使用「其中」,因爲性能在新二等公民。 – 2014-10-07 02:55:55