我更新了与属性Expirydate
的关系。我想在遍历路径中排除所有过期的关系。查询条件是通过路径中的所有关系检查Expirydate
。我收到了错误:
==> SyntaxException: ==> ==>认为我们应该在这里有更好的错误信息?通过发送此查询到cypher@neo4j.org来帮助我们。
以下是查询:
START sNode=node(530)
MATCH sNode-[r:hasRegisteredPlate|inHouseHoldWith*1..2]->eNode
WHERE eNode.NodeType = "Plate" and (rel in r:(not has(rel.ExpiryDate) or
(has(rel.ExpiryDate) and (rel.ExpiryDate<>'' or rel.ExpiryDate >'2013-10-04'))))
RETURN eNode LIMIT 20
非常感谢任何帮助
答案 0 :(得分:0)
您可以尝试使用谓词all
。
START sNode=node(530)
MATCH sNode-[r:hasRegisteredPlate|inHouseHoldWith*1..2]->eNode
WHERE eNode.NodeType = "Plate" and all(rel in r
WHERE (not(has(rel.ExpiryDate)) or (has(rel.ExpiryDate) and (rel.ExpiryDate<>'' or rel.ExpiryDate>'2013-10-04')))
)
RETURN eNode LIMIT 20
您也可以尝试反向
WHERE eNode.NodeType = "Plate" and none(rel in r
WHERE (has(rel.ExpiryDate) and rel.ExpiryDate<'2013-10-04')
)
请注意,我没有尝试过这些,如果它们不起作用,也许你可以在neo4j console中设置一个示例图。