問題暗號鏈表併發插入
我試圖用暗號和Neo4j的建設linked list
。如果插入一次發生,該查詢將起作用。
但是,如果插入發生在同一時間然後linked list
變得一團糟。
插圖 藍色節點代表一個組。 黃色節點代表帖子。這些帖子應作爲鏈接列表連接到組。
(GROUP)-[LAST_POST]->(POST)-[PREVIOUS_POST]->(POST)-...->(POST)
我明白,我們不能鎖定寫做一個寫的時候,因爲這會影響性能。有沒有辦法強制執行一個LAST_POST
關係?
如果你想保持連接老尾...(POST)-[PREVIOUS_POST]->(POST)-...->(POST)
我使用
MATCH(group:group{id:{groupId}})
OPTIONAL MATCH (group)-[r:LAST_POST]->(oldPost)
DELETE r
merge (post:post{id: {postId}, type:{type}})
CREATE (group)-[:LAST_POST]->(post)
WITH post, collect(oldPost) as oldLatestPosts
FOREACH (x in oldLatestPosts|CREATE (post)-[:PREVIOUS_POST]->(x))
RETURN post