此查询曾用于在WITH
和CREATE UNIQUE
语句之间没有MATCH
语句的Neo4j 1.9中工作。
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
关键字查询正确的做事方式?这在性能方面有什么不同吗?我假设没有。
答案 0 :(得分:1)
不幸的是,错误在于1.9解析器而不是2.0解析器。 Cypher不允许您在同一个子查询中混合读取和写入,并且START..MATCH ... CREATE UNIQUE ... MATCH就是这样。
新的2.0解析器更严格,并且正确拒绝此查询。