2

这个查询曾经在 Neo4j 1.9 中工作,并且在and语句WITH之间没有语句。CREATE UNIQUEMATCH

START left=node:node_auto_index(Uname = "test"),
right=node:node_auto_index("StoreId:(\"com.google.android.street\",\"com.google.android.youtube.googletv\")")
CREATE UNIQUE left-[:Owns]->(Device {DeviceId:"myDevice"} ) <-[r:Installed]-right 
WITH left, right
MATCH right-[:InstanceOf]->parents<-[?:Alternative]-altParents<-[:InstanceOf]-alternatives   
RETURN right AS App;

为什么2.0会有变化,用WITH关键字查询是不是正确的做事方式?这在性能上有什么区别吗?我假设不是。

4

1 回答 1

1

不幸的是,错误在于 1.9 解析器而不是 2.0 解析器。Cypher 不允许您在同一个子查询中混合读取和写入,而 START..MATCH...CREATE UNIQUE...MATCH 就是这样做的。

新的 2.0 解析器更加严格并且正确地拒绝了这个查询。

于 2013-06-18T09:18:25.483 回答