多个OPTIONAL MATCH在Neo4j 2.2.3中返回以下错误。我正在使用Cypher 2.2解析器。 **
" org.neo4j.rest.graphdb.RestResultException:null at 的NullPointerException&#34 ;.相同的查询在Neo4j 2.1.7中完美运行。
**
match (user:user)-[k:SUBSCRIBED]->(package)
where package.startDate < 1439268888365 and package.endDate > 1439268888365
with package,user optional match (package)-[j:HAS]->(products)
with package,j,products,user optional match (package)-[j:HAS]-(otherpackages)
return distinct package,products,user,otherpackages
有任何解决这个的指针吗?
答案 0 :(得分:0)
根据Neo4j documentation可选匹配可以返回null,要知道返回null的位置,只需尝试查询的每个段,并将每个“with”替换为返回。
您还可以使用Case expression管理空值返回,并将其替换为默认值(如0)。
你应该考虑升级到2.2.4,这是一个关键的更新,它可能只是通过应用它来修复你的问题。
答案 1 :(得分:0)
试试这个,
match (user:user)-[k:SUBSCRIBED]->(package:package)
where package.startDate < 1439268888365 and package.endDate > 1439268888365
with package,user
optional match (package)-[j:HAS]->(products:products) with package,j,products,user
optional match (package)-[j:HAS]-(otherpackages) with package,j,products,user,otherpackages
return
{
package:[{package:package}],
products:[{products:products}],
user:[{user:user}],
otherpackages:[{otherpackages:otherpackages}]
}
&#13;
如果你想要使用不同的手段
收集(包)