0
私は、各Personに年齢プロパティがあり、娘の息子である2番目のすべての子を照会したいという画像(1)年齢> 50)である。与えられたデータベーススキームの場合、Bobから始まる私の期待される結果は[Tim、Sam]です。キッパーの複数のリレーションからなるマッチ再帰パターン
私はすでに様々な長さの関係を照会するための「*」演算子を試みたが、それは今のところ動作させることができませんでした。私はボブとティムを返し
START bob=node(0) MATCH (bob)-[:daughter*]->(p:Person)-[:son*]->(s)
WHERE p.age > 50 RETURN bob, sbob, s
だけでなく、私に与え
MATCH (:Person)-[:daughter*]->(p:Person)-[:son*]->(s)
WHERE p.age > 50 RETURN collect(s)
[ティム、ボブ、トム、サム]を試してみました。
データベース構造を変更せずに期待どおりの結果を得る方法はありますか?空のコレクションが返されるすなわちティナは48で、カルメンが52であれば(事実上不可能ながら)パス上のすべてのdaugthersが50歳以上である必要があり、余分な要件として
更新 、(息子の年齢がドン」 t問題)。
これは、子供が両親より若いと仮定すると、私の質問を解決します。実際には不可能だが、私はこの仮定を私の質問で省略したい。更新された質問をご覧ください。 – tNewhomes
N/p - アップデートを参照してください:) –
クエリの実行neo4j 2.2.3を使用してageプロパティにアクセスすると、型が一致しません。私はこれを回避するために、 'extract'を使ってパス内のすべてのノードの年齢を持つコレクションを取得することができました。ご助力ありがとうございます – tNewhomes