0

properties との関係を更新しまし 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

どんな助けでも大歓迎です

4

1 に答える 1

0

predicate を使用してみてください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 コンソールでサンプル グラフをセットアップできます。

于 2013-10-08T12:39:15.003 に答える